テクスチャの開放
C言語でOpenGLを利用し3Dオブジェクトにテクスチャを貼り付ける動作を繰り返すプログラムが強制終了されるという連絡を受け、原因を調べていました。
原因を調べるために落ちる症状を聞いていると、メモリが徐々に減って行ってることが判明!
そのことからメモリの開放をしているかと聞くと、「しているはず」と答えるので、面倒ながら自分で読むことにしました。
プログラムを読んでいるとテクスチャを何度も読むという無駄な処理があったりと突っ込みどころ満載なプログラムでしたw
その辺りを指摘しながら読み進めると、確かにテクスチャを読み込んだ変数は開放していました。
あれ?これだけでよかったっけ?と思いつつ、ネットで調べてみると、
// テクスチャの生成関数
glGenTextures( <テクスチャ数>, <テクスチャ名> )
関数でテクスチャを生成すると、その生成したテクスチャを開放してあげないと、メモリが保持されたままだと分かりました。
で、開放する関数を書き加えてみると、
// テクスチャの開放関数
glDeleteTextures( <テクスチャ数>, <テクスチャ名> )
強制終了されなくなり、メモリ使用量も安定するようになりました。
皆さんもテクスチャを生成して必要なくなったら、開放するようにしましょうねー!w
Hotmail障害
普段Hotmailを利用しているので、本日15日の15時頃に発生した障害で一時的にウェブサイトからメールが見れなくなりました。
この障害の影響で、Twitterのトレンドにhotmailが上がってくるなどちょっとした事件になっていました。
さすが世界最大級のウェブメールサービスですね。
障害発生から約3時間後に障害は復旧しましたが、hotmailをメインに使ってるユーザーには大変な出来事だったと思います。
私は、外部メールをHotmailで受信し使用しているので、障害が発生しても大した問題は発生しませんでした。
(外部メールの方で見れば問題ないので)