アカウント名:
パスワード:
>メモリリークなんかのバグがあってもアウトプットが正しければ良い正しいのか?
まあ言いたい事は分かる。「個別の値に誤りがあったとしても定性的な傾向さえあっていれば良い」的な意味なんだろうけど。
公開されるつもりで書いたほうが論理的になるし、あとでバグを潰すことは大変な苦労をする。
「品質は作りこむものです」という言葉もあるしな。
>メモリリークなんかのバグがあってもアウトプットが正しければ良い 正しいのか? まあ言いたい事は分かる。 「個別の値に誤りがあったとしても定性的な傾向さえあっていれば良い」 的な意味なんだろうけど。
ぜんぜん分かってないってことが分かる。 メモリリークは、途中経過にしろ最終結果にしろ、数値の誤りを意味するものではない。 上出来なプログラムに比べれば、メモリリークするプログラムは実行中により多くの メモリを要求する筈だが、それを賄い切れる限り、単なるメモリリークだけでは 間違った数値を出力したりはしない。
メモリリークは、途中経過にしろ最終結果にしろ、数値の誤りを意味するものではない。
君こそバグの恐ろしさを判っていない。
メモリリークのあるところ、ポインタ操作の間違いアリ、だ。演算対象や、保存先のアドレスが正しくなければ、数値演算の結果の正しさは保証できん。
メモリリークのあるところ、ポインタ操作の間違いアリ、だ。
それは相関関係であって、因果関係ではない。 メモリリークの修正をうかつに奨励すれば、一定量の 「メモリリークのある、低品質なプログラム」が「メモリリークのない、低品質なプログラム」 に変換される。前者の方が後者よりも検知容易であることとを考えると、寧ろ放置すべきである。
前者の方が後者よりも検知容易であることとを考えると、寧ろ放置すべきである。
それこそナンセンスだ。前者だろうが後者だろうが、数値計算結果に間違いがある危険性が高いことに変わりはなく、なおかつソースが公開されない限り、数値計算結果に影響のあるメモリリークか、影響の無いメモリリークかは評価不能なのだから。
「うちの娘は、メモリリークがあっても大丈夫な娘ですっ」と言いたいなら、ちゃんとソースコードを公開するべきだ。
ついでに言っておくなら。研究用のコードを公開するにあたって、コードのクリーンナップは必要ない。
それも間違い。メモリリークではあるから。それ以外の問題でもあるというだけで。
というよりも。メモリリークというバグが単独で発生し、なおかつそれ以外の問題を引き起こさない、と言うのは奇跡的な状況です。
動的メモリ管理というのはすごく簡単に言うと:
1) メモリを確保する。確保したメモリは先頭アドレス/リファレンスで管理する2) 1 で得たアドレス/リファレンスを基点として、一連の演算を行う3) 1 で得たメモリを解放する
という3段階で成り立っています。また、コーディングもこの順序で行われるのが一般的です。メモリリークが「メモリリークとしてだけ」
参照カウント式のGCのある言語での循環参照とかはどうでしょう?グラフをリンクで表現してるとありがちっぽい気も…。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
公開したくないなぁ (スコア:1, 参考になる)
議論で公開しろと言われれば、しますけどね…
公開するならもう少し綺麗なコードにしたいし、その時間があるなら別のことをしたいというのが本音。
一応、プログラムが正しい結果を出すことはチェックしている…つもりなんですが…
学生さんに渡したプログラムに、卒論提出直前にとんでもないミスが見つかったことがあります。
Re: (スコア:0)
>メモリリークなんかのバグがあってもアウトプットが正しければ良い
正しいのか?
まあ言いたい事は分かる。
「個別の値に誤りがあったとしても定性的な傾向さえあっていれば良い」
的な意味なんだろうけど。
公開されるつもりで書いたほうが論理的になるし、あとでバグを潰す
ことは大変な苦労をする。
「品質は作りこむものです」という言葉もあるしな。
Re: (スコア:3, すばらしい洞察)
ぜんぜん分かってないってことが分かる。
メモリリークは、途中経過にしろ最終結果にしろ、数値の誤りを意味するものではない。
上出来なプログラムに比べれば、メモリリークするプログラムは実行中により多くの
メモリを要求する筈だが、それを賄い切れる限り、単なるメモリリークだけでは
間違った数値を出力したりはしない。
Re: (スコア:1)
君こそバグの恐ろしさを判っていない。
メモリリークのあるところ、ポインタ操作の間違いアリ、だ。
演算対象や、保存先のアドレスが正しくなければ、数値演算の結果の正しさは保証できん。
fjの教祖様
Re: (スコア:1)
それは相関関係であって、因果関係ではない。
メモリリークの修正をうかつに奨励すれば、一定量の
「メモリリークのある、低品質なプログラム」が「メモリリークのない、低品質なプログラム」
に変換される。前者の方が後者よりも検知容易であることとを考えると、寧ろ放置すべきである。
Re: (スコア:2, すばらしい洞察)
それこそナンセンスだ。
前者だろうが後者だろうが、数値計算結果に間違いがある危険性が高いことに変わりはなく、なおかつソースが公開されない限り、数値計算結果に影響のあるメモリリークか、影響の無いメモリリークかは評価不能なのだから。
「うちの娘は、メモリリークがあっても大丈夫な娘ですっ」
と言いたいなら、ちゃんとソースコードを公開するべきだ。
ついでに言っておくなら。研究用のコードを公開するにあたって、コードのクリーンナップは必要ない。
fjの教祖様
Re: (スコア:0)
そういうのメモリリークって言わないから
Re: (スコア:2, すばらしい洞察)
それも間違い。
メモリリークではあるから。それ以外の問題でもあるというだけで。
というよりも。メモリリークというバグが単独で発生し、なおかつそれ以外の問題を引き起こさない、と言うのは奇跡的な状況です。
動的メモリ管理というのはすごく簡単に言うと:
1) メモリを確保する。確保したメモリは先頭アドレス/リファレンスで管理する
2) 1 で得たアドレス/リファレンスを基点として、一連の演算を行う
3) 1 で得たメモリを解放する
という3段階で成り立っています。また、コーディングもこの順序で行われるのが一般的です。
メモリリークが「メモリリークとしてだけ」
fjの教祖様
Re:公開したくないなぁ (スコア:1)
というよりも。メモリリークというバグが単独で発生し、なおかつそれ以外の問題を引き起こさない、と言うのは奇跡的な状況です。
参照カウント式のGCのある言語での循環参照とかはどうでしょう?
グラフをリンクで表現してるとありがちっぽい気も…。