- 1 名前:デフォルトの名無しさん mailto:sage [2020/03/24(火) 00:04:33 ID:YFRNwZnv.net]
- C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part149 https://mevius.5ch.net/test/read.cgi/tech/1581974381/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) テンプレここまで
- 357 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 15:15:40 ID:UPXGgu7R.net]
- >>343
何か勘違いしているようだが、人気が有ったのはpure Cの方だからね。 今のC++の人気は、pure Cの人気を引き継いだだけ。 そしてC++が変な拡張を繰り返したからこそ、人気にかげりが見えてきている。
- 358 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 15:16:31 ID:om9P6Ux9.net]
- >>344
autoは型をきちんと理解して使うもので アホが使うと謎の動きに翻弄されることになる
- 359 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 15:19:58.74 ID:TokoipqW.net]
- >>346
そのコメント
- 360 名前:343宛でよいの? []
- [ここ壊れてます]
- 361 名前:デフォルトの名無しさん [2020/04/24(金) 16:02:04 ID:3fWjsT92.net]
- autoは要らない子
- 362 名前:デフォルトの名無しさん mailto:age [2020/04/24(金) 16:06:41 ID:h2kPOcUM.net]
- auto使ってない人なんて実在するのか?
- 363 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 16:22:47 ID:UPXGgu7R.net]
- >>341
どう書いてあったか詳しく聞いてみたい。
- 364 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 17:35:30 ID:UB0Nvahs.net]
- >>345
何で別の話を始めたの? ちゃんと質問には答えてくれないかな?
- 365 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2020/04/24(金) 17:42:51 ID:/uuSllCQ.net]
- >>344
型検査の厳しさは型を陽に書くかどうかとは関係ない。 >>345 何をいいたいのかわからん。
- 366 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 18:14:30 ID:UPXGgu7R.net]
- >>353
馬鹿ですか?
- 367 名前:デフォルトの名無しさん mailto:sage [2020/04/24(金) 18:22:23.35 ID:JqJmAzM2.net]
- >>354
何で>>345で別の話を始めたの? ちゃんと人の質問には答えようね
- 368 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 07:51:21.81 ID:McBhOj36.net]
- >>351
コンパイル時にすべての変数の型が確定しないc++は弱い型付けだから型無し言語に分類だって。
- 369 名前:341 mailto:sage [2020/04/25(土) 09:43:58 ID:qEMV8mRo.net]
- >>356
そこは動的型付けの説明だよ。 ちゃんと読んで
- 370 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 11:27:52 ID:nL0CusKX.net]
- 5月号のこと?
- 371 名前:デフォルトの名無しさん [2020/04/25(土) 11:29:47.36 ID:4nLfPOGM.net]
- トラ枝?
- 372 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 11:29:54.96 ID:nL0CusKX.net]
- >>357
その雑誌には、 静的型付け言語であるところの C++ が「型無し言語」であると書いてあるの?
- 373 名前:デフォルトの名無しさん [2020/04/25(土) 19:17:45 ID:45wIze2e.net]
- アムウェイで地味に成功してた僕が業界の裏側を暴露してみた
https://www.youtube.com/watch?v=98udsqJihkA 年間300万円稼げてたのにアムウェイをやめた理由 https://www.youtube.com/watch?v=-H_dBzeJeUM 【体験談】元DDがAmwayで稼ぐのが難しい理由を解説してみた【元ガチ勢】 https://www.youtube.com/watch?v=SpzJEddQOdE 【借金地獄】マルチ商法で死の淵から生還して得たもの失ったもの【ビジネス論】 https://www.youtube.com/watch?v=UxriU-TOrMY あの頃アムウェイはじめちゃったきっかけ【元ガチ勢】 https://www.youtube.com/watch?v=H9C4n4pL03U 私がネットワークビジネスを勧めない理由とは? https://www.youtube.com/watch?v=hQNkcfhzv18
- 374 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 19:26:23 ID:siKm6MFQ.net]
- >>361
グロ
- 375 名前:デフォルトの名無しさん [2020/04/25(土) 19:45:42 ID:zwQe2okb.net]
- auto it = unique(
vecVisibilityPolygonPoints.begin(), vecVisibilityPolygonPoints.end(), [&](const tuple<float, float, float> &t1, const tuple<float, float, float> &t2) { return fabs(get<1>(t1) - get<1>(t2)) < 0.1f && fabs(get<2>(t1) - get<2>(t2)) < 0.1f; }); vecVisibilityPolygonPoints.resize(distance(vecVisibilityPolygonPoints.begin(), it)); のresize()から意味がよくわからないのですが、 {0.1, 0.11, 0.2, 0.21, 0.4, 0.41} ↓ {0.1, 0.2, 0.4} なことでしょうか?
- 376 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 20:03:25.46 ID:NvgVRl2l.net]
- >vecVisibilityPolygonPoints
std::vector<T>のハンガリアン記法での接頭辞vecで良いんだっけ… Tの情報はどう埋め込めば良いんじゃ… 毎回悩むのでJISか何かで決めてホスイ
- 377 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 20:32:53.50 ID:/7S9hKw7.net]
- erase使わずにresize使う人始めてみたわ
- 378 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 22:11:42 ID:NvgVRl2l.net]
- >erase使わずにresize使う人始めてみたわ
ハア?(゚Д゚)ハァ?
- 379 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 22:34:29 ID:siKm6MFQ.net]
- >>364
vecなんて付けずにvisibilityPolygonPoints でいいんじゃね。システムハンガリアンは不要または有害だと言われるようになって久しいだろう。 処理の都合上、別のコンテナからvectorに詰め替えたとかでvectorであることに強い意味がある状況なら、vecをつけて元の変数と区別する意味はあると思うけど。
- 380 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 22:56:50 ID:WEavO2K3.net]
- auto使ってハンガリアンとかなんか間違ってるわな。
- 381 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 23:00:45 ID:/7S9hKw7.net]
- 確かにvectorだと処理量変わらんな
- 382 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 23:11:24 ID:/7S9hKw7.net]
- >>363
3要素のvectorでyzの値が近いものを同一と見なして削除する処理なのかね unique前のsortどうしてんのか謎だけど uniqueは重複したものは一つだけ残して前にuniqueなデータを集め、後半にゴミを集める 戻り値はゴミの開始iterator resize部分はゴミを消す処理 一般的にはerase使ったerase-remove_ifイディオムの変形だな
- 383 名前:デフォルトの名無しさん mailto:sage [2020/04/25(土) 23:12:19 ID:/7S9hKw7.net]
- ポリゴンだからソートする必要ないのか
- 384 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 00:08:03.75 ID:PBJtHpgo.net]
- 使ったこと無いから知らんがstd::unique<T>()は
>削除は、消去される要素が上書きされるように、範囲内の要素をずらすことによって行われます。 とのことなので、callerがstd::unique<T>()を呼ぶ前にソートしておく必要があるのでは…
- 385 名前:デフォルトの名無しさん [2020/04/26(日) 00:15:41.29 ID:tEMTnANK.net]
- >>370
unique前にソートで昇順にしているみたいです。
- 386 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 00:30:35 ID:NFXmWZjN.net]
- 結局メモリーポインタ関連わかってない奴はガベコレなんかで隠ぺいした言語使っててもバグる
- 387 名前:デフォルトの名無しさん [2020/04/26(日) 03:23:30.98 ID:3JmljcZq5]
- 東大院生と本気数学トーク!!【数学ボーイZ 数学野郎さんコラボ】
https://www.youtube.com/watch?v=787N_AlSI0I 中3で数V先取り!? 京大数学系YouTuber古賀さんに開成中高時代を聞く! https://www.youtube.com/watch?v=npswPUea1-M 開成から京大理学部に進学した理由とは?古賀さんに京大の実態を聞く! https://www.youtube.com/watch?v=I8nWEHhgzxI 高校数学と何が違うの?大学数学でつまずかないためのアドバイス![大学数学準備講座1/4] https://www.youtube.com/watch?v=duXZGbRviG4 数学は「定義」にかえることが大事! https://www.youtube.com/watch?v=yhrUT4bLm7Q 数を創る話〜自然数から複素数への構成〜 https://www.youtube.com/watch?v=dQ2nFUTNchU 高校生でも雰囲気だけ分かるガロア理論 https://www.youtube.com/watch?v=LiPv0VuSvaE 高校生でも雰囲気だけ分かるゼータ関数とリーマン予想 https://www.youtube.com/watch?v=MaerL2XLaqk 【高校生でもわかる】いろいろな積分 リーマン,ルベーグ... https://www.youtube.com/watch?v=jzfaFCDn5JY 大学で本気で学問をしたい人へのアドバイス https://www.youtube.com/watch?v=7G7XbRSdk9k
- 388 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 05:15:56 ID:mQCdU9mn.net]
- vecVisibilityPolygonPoints が「1枚のポリゴンの各頂点の座標(頂点数は任意)」で
座標値は画面に表示すべき値に変換済み(透視投影が完了している)、 <float, float, float> が (x, y, z) を表すと仮定すると… 隣合う頂点のx座標同士、y座標同士がそれぞれ十分に近ければ その「極端に短い一辺」を1つの頂点とみなして表示処理を軽減、って感じかな。 resize() の結果 size() が 1 か 2 になったらポリゴン全体が 「見えないポリゴン」になるので丸ごと省略、までやるかも。
- 389 名前:375 mailto:sage [2020/04/26(日) 05:26:01.50 ID:mQCdU9mn.net]
- tupple::get<> は 0 始まりだから y, z 座標だね(>>370 さんの言う通り)。
すると少々怪しいか、素朴な仮定だとスッキリ辻褄が合わない。
- 390 名前:デフォルトの名無しさん [2020/04/26(日) 06:57:42 ID:yiiyQ5aD.net]
- 申し訳ありません。
>>363のコードは ttps://github.com/OneLoneCoder/olcPixelGameEngine/blob/master/Videos/OneLoneCoder_PGE_ShadowCasting2D.cpp の416行からです。
- 391 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 08:53:55 ID:PKqlhi9Y.net]
- >374
確かにGCあり言語でのリークなんかは逆にデバッグがかなり難しい。 理解してないやつはまず無理。
- 392 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 10:44:13 ID:O/ywVmO1.net]
- そういうのはシステムのバグで
自分の落ち度じゃねえだろ
- 393 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:12:47.10 ID:YMFvD6ns.net]
- システムのバグ以外にリークが起きないとでも思ってるの?
- 394 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:14:07.90 ID:O/ywVmO1.net]
- 起きるとでも思っているのか?
- 395 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:15:58.89 ID:YMFvD6ns.net]
- 当たり前
- 396 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:24:00 ID:O/ywVmO1.net]
- えらく無口だな
- 397 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:28:31 ID:PBJtHpgo.net]
- プログラムの開始から終わりまで存在するオブジェクトがリストを所有しており、
そのリストに要素数制限もエラーチェックも無く無制限に増える場合とか、 オブジェクトAとオブジェクトBが互いを参照し合っている場合(循環参照)とか いろいろ つかオブジェクトをいつ使い終わったかを機械的に判定する難しさを考えたらワカル
- 398 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:42:05.69 ID:BQqaPcbS.net]
- 使わないのに参照しっぱなしで放置=リークともとれるからね
GCはあるとちょっとは便利でしょって程度のものでヒープ管理の全体像はプログラマが把握しておくべきだと思うわ 頻繁なGCが必要なくらいにヒープ使うのであれば設計から考え直す必要あるんじゃないかと
- 399 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:50:09 ID:O/ywVmO1.net]
- リークじゃねえじゃん
参照元の寿命が尽きてないんなら
- 400 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 11:54:22.98 ID:PBJtHpgo.net]
- >>387
参照元の寿命が尽きていなくても使いもしないのであれば現象としてはリ〜クに他ならない 違うというならメモリ消費量が際限なく増え続けるプログラムを客先に納めて リ〜クではないんですよと仕様ですよ説明して見せると良い
- 401 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:08:46 ID:O/ywVmO1.net]
- >>388
参照元が生きているのをリークとは言わない その状態で意図しない動作になるのはリーク以外のバグってだけだ おまえさん自身がそれを仕様ですよと説明できないと言っているように
- 402 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:13:43 ID:YMFvD6ns.net]
- リークですね
- 403 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:15:41 ID:YMFvD6ns.net]
- 狭い狭い定義しか知らないと恥ずかしいよ
- 404 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:30:26 ID:L6Afs0I9.net]
- リークの字義的には微妙
プロセス外部から見える挙動はリークと同様だけど
- 405 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:31:51 ID:O/ywVmO1.net]
- >>391
自分が間違って憶えているのを正当化するために定義を広くしようたって誰も協力せんぞ
- 406 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:33:29 ID:PKqlhi9Y.net]
- いや普通に文脈で何を問題にしてるかわかるだろ。。
勝手に自分ルールで解釈狭めてリークはないとか言い出してる奴が頭おかしいわ。
- 407 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:43:33 ID:oUbeKuvV.net]
- 明確な定義なんてないだろ
リークに見える挙動はリークだよ
- 408 名前:◆QZaw55cn4c mailto:sage [2020/04/26(日) 12:48:55 ID:Whjp3eXS.net]
- リークの定義は複数あっていいと思いますが、「?自分の定義はこれで、だから?これはリークである/ない」の??二点を明示するべきだと思いますね
- 409 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:49:09 ID:O/ywVmO1.net]
- >>394
何を問題にしているかと、それをリークと呼ぶか否かは別な話だぜ
- 410 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:49:37 ID:0EP709eE.net]
- リークに見える?
実際リークしてるわけで
- 411 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:50:39 ID:O/ywVmO1.net]
- それこそ「理解してないやつ」がテキトーこいてリークだリークだ言うのと同じだ
- 412 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:51:44 ID:L6Afs0I9.net]
- まあ何から漏れているか明確じゃないのまで、リークと呼び始めた人が悪いんだな
内部的な原因も対処法も全く違うのに、外見だけで同じ名前つけられても混乱するだろうに
- 413 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:52:48 ID:NFXmWZjN.net]
- リークによって起きる現象とリークは分けて考えた方がいい
本質的には未使用メモリーの蓄積だが名称がないから混乱が起きる 蓄積を処理しないのもバグ リークは蓄積をコントロールできなくなっていて、結果的に処理していない点が違うがこれもバグ
- 414 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:54:00 ID:wqemtgsF.net]
- 少なくとも>>385の巨大リストを抱えてる方はリークとは言わない
データ管理がなってないだけ
- 415 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:55:18 ID:0EP709eE.net]
- 原因は?
メモリリークによりメモリが不足してました これだけで終わる会話を
- 416 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:57:19 ID:0EP709eE.net]
- >>402は確かに違う
循環参照は普通検出すると思ってるけど そうでもないシステムがある?
- 417 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:58:55 ID:0EP709eE.net]
- 循環参照で問題になるのはカウント方式の場合
C++のスマポくらいでは?
- 418 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 12:59:35 ID:0EP709eE.net]
- >>402じゃなくて>>385
- 419 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 13:01:31 ID:O/ywVmO1.net]
- int main(void)
{ void *p = malloc(1); int x; while(scanf("%d", x) != EOF) { //タイプミスで永久ループ //... } free(p); //到達しなくなる } 参照元pが生きているのはリークではない
- 420 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 13:18:14 ID:yChHyLLG.net]
- 使ってないメモリ領域が増え続けるのはメモリリーク
参照があろうがなかろうが
- 421 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 13:23:22 ID:L6Afs0I9.net]
- 使ってないと言っても使うかもしれないから無限にリストが長くなっているんじゃね
純粋なインメモリデータベースだとそれはリークではないよね 問題が起きたのだとしたら、用途に対してメモリが少なかったのが悪いだけで
- 422 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 13:23:31 ID:O/ywVmO1.net]
- 管理手段が残っているのはリークではない
無駄に多く割り付けたり解放のタイミングがまずいというだけ
- 423 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 13:30:11 ID:X/1sAzcb.net]
- WikipediaだとGCあってもメモリリークすることになってる
https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF#%E3%82%AC%E3%83%99%E3%83%BC%E3%82%B8%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%99%90%E7%95%8C
- 424 名前: mailto:sage [2020/04/26(日) 13:46:44.42 ID:Whjp3eXS.net]
- >>411
それは GC の種類によるんじゃないでしょうか? 参照カウンタ方式のGC(私は、参照カウンタ方式はGCと呼ばない人ですが)ならGCがあってもリークするでしょうし、 GCの元祖マークアンドスウィープ式や、これも昔からあるコピーGCならば、リークはしないでしょうね
- 425 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 14:07:55 ID:YMFvD6ns.net]
- どんな方式だってリークする
- 426 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 14:09:19 ID:YMFvD6ns.net]
- 使わないメモリが増え続ければリーク
- 427 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 14:10:46 ID:YMFvD6ns.net]
- 上のリンクのガベージコレクションの限界
に書いてある
- 428 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 14:18:17.62 ID:X/1sAzcb.net]
- C#とかだと、イベント購読の解除忘れなどでリークすることがあるそうです。
その対策で弱参照が使われることがあるそうです。 https://ufcpp.net/study/csharp/RmWeakReference.html#weak-event
- 429 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 14:19:26.91 ID:L6Afs0I9.net]
- 無限に増えるキャッシュ
->使っているからリークじゃない ログ的なデータを延々と追加するだけ-> リーク 終了時にファイル出力->リークじゃない つまり、ファイル出力機能を後から追加することでリークじゃなくなるんだな それでメモリ足りなくなったらなんて呼ぶんだろう
- 430 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 14:37:42.83 ID:r10bSm2e.net]
- リークかどうかじゃなくて使ってるか使ってないかだな
プログラマー的には使ってないけどプログラム的には使ってるものをリークと呼ぶのが適切とは思えんけど
- 431 名前:デフォルトの名無しさん [2020/04/26(日) 14:42:49 ID:fU7fb2M4.net]
- プログラマー的には使ってないけどプログラム的には使ってるものをリーク
プログラマー的には使ってるけどプログラム的には使ってないものをリーク プログラマー的には使ってないけどプログラム的には使っないものをリーク プログラマー的には使ってるけどプログラム的には使ってるものをリーク
- 432 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 14:44:35 ID:1jKTUwjI.net]
- どの立場で見るかでしょ
言語のランタイムシステムの立場では参照が残ってるんだったらリークではないといえる 人間の立場では無限にメモリ使ってるつもりがないのにメモリが枯渇するのでリークしてる 現実問題は人間の立場で見るのだから後者でよい
- 433 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:07:57.54 ID:O/ywVmO1.net]
- 枯渇したらリークってのもおかしいぜ
必要容量のRAMを実装していないのがリークになっちまう
- 434 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:17:14 ID:1jKTUwjI.net]
- >>421
典型的にそうやってメモリリークに気づくからそう書いただけ gc言語でもリークに気を付ける必要があるというのは 20年前ぐらい前から言われている 組み込みJavaが流行った時とか特にね
- 435 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:23:22 ID:O/ywVmO1.net]
- 明示的に解放できないシステムでどうやって気をつけるんだよ
さっきからシステムのバグつってんだろ
- 436 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:25:40 ID:O/ywVmO1.net]
- そもそもGCが解放してくれないのはリークではないからだろうが
- 437 名前:◆QZaw55cn4c mailto:sage [2020/04/26(日) 15:35:50 ID:Whjp3eXS.net]
- >>413
元祖マークアンドスィープ法やコピーGC ではリークしませんね、これは断言できるでしょう
- 438 名前:◆QZaw55cn4c mailto:sage [2020/04/26(日) 15:36:43 ID:Whjp3eXS.net]
- >>415
リンクのwiki には、参照カウンタ方式のリークは書いてあっても、マークアンドスウィープ法やコピーGC についてはリークするとは書いていませんね
- 439 名前:◆QZaw55cn4c mailto:sage [2020/04/26(日) 15:38:02 ID:Whjp3eXS.net]
- >>417
あなたはまず、あなたのリークの定義を正確に記述する必要がありますね、現状、あいまいなのでは?>>396
- 440 名前:◆QZaw55cn4c mailto:sage [2020/04/26(日) 15:39:27 ID:Whjp3eXS.net]
- >>420
>人間の立場では無限にメモリ使ってるつもりがないのにメモリが枯渇するのでリークしてる それはメモリ不足であって、リーク(「漏れる」)ではないのでは?
- 441 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:42:28.68 ID:X/1sAzcb.net]
- >>426
なぜ、リンク先が参照カウンタ方式のことしか述べていないと思ったのですか。 参照カウントではないC#でも弱い参照が存在することは >>416のリンクで説明したはずですが。
- 442 名前: mailto:sage [2020/04/26(日) 15:47:18.06 ID:Whjp3eXS.net]
- >>429
>参照カウントではないC#でも弱い参照が存在することは @強い参照、弱い参照を使い分ける方式は、参照カウント法の一種だと認識しています A元祖マークアンドスウィープ法、コピーGC法では原理的にリークは発生しませんし、発生し得ません
- 443 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:55:37.10 ID:O/ywVmO1.net]
- >>411
おまえさんWikipediaってどんな所だか知ってるか? ちなみに俺もとあるページを執筆したことがあるが 俺はどこの馬の骨か聞かれもしなかったし アホなミスをしでかしてもあんまり指摘されないし 悪意のある文面をやめさせるのにも手間取るぞ 査読できる人でないと鵜呑みは危険だぞ
- 444 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 15:57:08.52 ID:X/1sAzcb.net]
- 一方、マーク・アンド・スイープ方式やコピーGC方式では循環参照によるメモリリークは
発生しないが、非意図的オブジェクト保持(unintentional object retention)が引き起こす メモリリークを強参照のみによる実装で解消することは難しく煩雑であり、 実装を簡略化するために弱参照が用いられることがある。 https://ja.wikipedia.org/wiki/%E5%BC%B1%E3%81%84%E5%8F%82%E7%85%A7
- 445 名前:◆QZaw55cn4c mailto:sage [2020/04/26(日) 16:08:55 ID:Whjp3eXS.net]
- >>432
>>430 ?強い参照、弱い参照を使い分ける方式は、参照カウント法の一種だと認識しています
- 446 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:10:32 ID:X/1sAzcb.net]
- 使ってる言葉の意味が異なる人を説得するのは無理だと悟った
- 447 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:21:48 ID:YMFvD6ns.net]
- また面倒なのが出てきたな
wikipediaのリンクで終わったかと思ったのに QZは頭が弱いから
- 448 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:22:02 ID:CnmrePPR.net]
- >>427
407の定義だと曖昧すぎて気持ち悪くなるって例出しただけ 確保したメモリを使用しなくなったのに解放しないまま管理外にするのが狭義のメモリリーク それ以外の現象もメモリリークと呼ぶのは知っているが、その呼び方は混乱招くから好きじゃないって立場
- 449 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:26:58 ID:YMFvD6ns.net]
- 使わない、使うつもりもない、プログラマが意図しないメモリ
これらが増え続ければリーク 定義じゃなくて十分条件の例
- 450 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:28:11 ID:1jKTUwjI.net]
- >>423
> 明示的に解放できないシステムでどうやって気をつけるんだよ gc言語で本格的な開発したことないって白状してるようなもんだね メモリプロファイラで地道に調べるんだよ あと不要になったらgc任せにせずに即null代入しておけとかよく言われるだろ > さっきからシステムのバグつってんだろ システムって何だよ?意味広すぎるから説明になってない gc言語においては言語レベルではリークしない(循環参照はさておき) が依然人間の不注意によって実質的なリークは起るわけ それをお前はリークと呼ばなんだろうけど一般的にそれもリークと呼ばれてる それだけの話 理解しようぜ
- 451 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:28:26 ID:YMFvD6ns.net]
- 管理外っていうのは何を示してるかよく分からない
- 452 名前:デフォルトの名無しさん [2020/04/26(日) 16:29:38 ID:fU7fb2M4.net]
- >>431
wikipediaは 歴史系は特に悪意のある文面多いですね 特に日本史
- 453 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:43:46 ID:1jKTUwjI.net]
- >>424
昔から言われてることだけに昔の記事あったからこれでも読んでみ ttps://www.atmarkit.co.jp/fjava/rensai3/debug02/debug02_1.html 単に何をリークと呼ぶかというだけの話 Javaの開発元のサンの人もこういうんだからそれにあわせようぜ
- 454 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:45:39 ID:PBJtHpgo.net]
- >>439
GCが解放してくれるとプログラマが信じているが事実はそうでないケース
- 455 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:49:23 ID:PBJtHpgo.net]
- プログラマーが自分で作ったつもりのスレッドで資源を確保して、
スレッドの最初の関数からreturnしたら全部解放されると思いきや! 実はスレッドプールの1要素としてシステムが握りっぱなしだった、 みたいなテクノロジーホラーが あるのかも しれませんね 知らんけど
- 456 名前:デフォルトの名無しさん mailto:sage [2020/04/26(日) 16:58:02 ID:4KWblUmJ.net]
- MSVCのstd::asyncでは
- 457 名前:375 mailto:sage [2020/04/26(日) 17:17:04.65 ID:mQCdU9mn.net]
- >>378 のリンク先のソースをすっかり理解できたとは言い難いけど、
この場合の <float, float, float> は (何かの角度, x座標, y座標) みたいね。 vecVisibilityPolygonPoints は最初の要素(角度)でソート済み。 get<1>()でx座標、get<2>()でy座標を取れるから >>376 の第2段落の理屈は有効。 >>363 の質問に戻ると、 {0.1, 0.11, 0.2, 0.21, 0.4, 0.41} ↓ {0.1, 0.2, 0.4} の理解でだいたい合ってる。単一の値の比較でなく 「x座標同士, y座標同士が両方とも近い値の場合だけまとめる」わけだが。 もうひとつ。376で tupple::get と書いたけど、もちろん tuple::get が正しい。 (ここを訂正しておきたかった)。
|

|