GC、ガベージコレクション、ガベージコレクタ、ガーベジコレクション、ガーベジコレクタは使えない。
以下GCと記す
プログラマをメモリ管理から開放する!
といいつつ、メモリリーク問題の文献が大量にある。
これすなわち、メモリリーク問題が全然解決していないということ。
さらに、メモリ解放のタイミングの文献まで大量に生み出した。
これすなわち、新たなるメモリ管理に関する問題を生み出したということ。
malloc、freeじゃないが
結局のところ、メモリを管理するという技術は、今しばらくは、身につける・教える・学ぶべきではないだろうか?
使って、そのまま放置しても、基本的にはGCがなんとかしてくれている。
ランジョブからジョブ終了までさほどの時間を要さない。メモリも大して使わないならいいだろう。
しかし、規模が大きくなり常駐ジョブやメモリ大量使用のジョブになってくると、そんなメモリ管理の方法でやっていると、
上記「文献」を生み出されてしまう。
入門時は、メモリに無頓着でもいいだろう。それよりも、目的を達成することが先決だ。
しかし、慣れてきたら、やはりメモリの管理まで余裕を持って自分で行うべきだろう。
前スレ
GCは失敗。メモリは自分で管理せよ!
http://peace.2ch.net/test/read.cgi/tech/1412986420/
GCは失敗。メモリは自分で管理せよ! その2©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/11/18(水) 23:24:59.79ID:BUQ68wTG
676デフォルトの名無しさん
2017/09/17(日) 17:05:23.31ID:S40DCpdn malloc,newの挙動の説明ってまんまMMUの説明なんだよな
だから複雑なアルゴリズムを使われていると思うのはMMUが複雑な挙動をしているから
でも、そんなに複雑な挙動してるか??
単に過去のアプリとの互換性の問題で変な事をしているだけだぞ
だから複雑なアルゴリズムを使われていると思うのはMMUが複雑な挙動をしているから
でも、そんなに複雑な挙動してるか??
単に過去のアプリとの互換性の問題で変な事をしているだけだぞ
677デフォルトの名無しさん
2017/09/17(日) 17:16:19.17ID:S40DCpdn たいがいのmalloc,newはMMU次第でいくらでも挙動が変化するからな
ちゃんとPC毎に動作確認したか??
ちゃんとPC毎に動作確認したか??
678デフォルトの名無しさん
2017/09/17(日) 17:44:23.50ID:4FsrO7aF ID:S40DCpdn しったかしすぎ
mallocの挙動はヒープのアルゴリズム次第
mallocの挙動はヒープのアルゴリズム次第
679デフォルトの名無しさん
2017/09/17(日) 17:55:14.06ID:S40DCpdn malloc,newの挙動はハードとOSによって変化するという記述は見たことあるけどな
680デフォルトの名無しさん
2017/09/17(日) 18:02:58.95ID:S40DCpdn ごめん、ハードとソフトウェアだった
681デフォルトの名無しさん
2017/09/17(日) 18:10:58.66ID:hRPbVJUN ヒープの管理しないでなんとかなるレベルのものはgc言語使えばいいんでは?
このスレの趣旨的にそうでしょ?
このスレの趣旨的にそうでしょ?
682デフォルトの名無しさん
2017/09/17(日) 21:59:59.26ID:S40DCpdn 自分はメモリ対策プログラムを作って対応したけどな。
メモリサイズを三種類用意して、メモリに対するガードの確実な作りにした。
現在のサイズに使われてるサイズにリミットサイズの三種類のサイズな。
外に出てくるサイズは現在のサイズ、
使われてるサイズはメモリを増やした場合の最大取得サイズで、事実上の取得サイズ、
リミットサイズは取得できるメモリの上限。
で、これらを組み合わせてスーパークラスを作って基本的に対応させてる。
メモリサイズを三種類用意して、メモリに対するガードの確実な作りにした。
現在のサイズに使われてるサイズにリミットサイズの三種類のサイズな。
外に出てくるサイズは現在のサイズ、
使われてるサイズはメモリを増やした場合の最大取得サイズで、事実上の取得サイズ、
リミットサイズは取得できるメモリの上限。
で、これらを組み合わせてスーパークラスを作って基本的に対応させてる。
683デフォルトの名無しさん
2017/09/17(日) 22:08:00.63ID:S40DCpdn メモリの増減には現在のサイズで対応し、このサイズが必要以上に大きくなると
使われてるサイズを拡張するようにした。リミットサイズは滅多に使わないけれども、
一応対応させた。
メモリに対する読み書きは専用関数を経由して読み書きするようにしたから、
素人が使っても安全なぐらいのプログラムになってる。
使われてるサイズを拡張するようにした。リミットサイズは滅多に使わないけれども、
一応対応させた。
メモリに対する読み書きは専用関数を経由して読み書きするようにしたから、
素人が使っても安全なぐらいのプログラムになってる。
684デフォルトの名無しさん
2017/09/17(日) 22:27:01.93ID:S40DCpdn あと、動的配列ってのを作って、複数のメモリ取得に対応させた。
メモリにヘッダとフッタを用意して、フッタには複数配列のデータに対応させ、
ヘッダには配列数とメモリサイズを入れてる。フッタには>>682のデータを持たせた。
ある意味では拡張コンパクションみたいなモノになった。
メモリにヘッダとフッタを用意して、フッタには複数配列のデータに対応させ、
ヘッダには配列数とメモリサイズを入れてる。フッタには>>682のデータを持たせた。
ある意味では拡張コンパクションみたいなモノになった。
685デフォルトの名無しさん
2017/09/17(日) 22:33:12.53ID:S40DCpdn で、アローケートが一回だけになるようにして、あとはリアロークで対応させた。
おかげでメモリの消費効率は異常なまでに効率よく使えるようになったよ。
あと、動的配列使う場合はいったんメモリをフォーマットするようにしたけどね。
おかげでメモリの消費効率は異常なまでに効率よく使えるようになったよ。
あと、動的配列使う場合はいったんメモリをフォーマットするようにしたけどね。
686デフォルトの名無しさん
2017/09/17(日) 23:21:53.67ID:S40DCpdn それから、動的配列は入れ子構造にすれば色々と応用がきくようになってるけどな。
で、追記式みたいにデータが動くツリー構造とかが使えるようになってる。
で、追記式みたいにデータが動くツリー構造とかが使えるようになってる。
687デフォルトの名無しさん
2017/09/17(日) 23:27:13.12ID:2kxiy1Rb アセンブラできない馬鹿がC++使うことを想定するとGCは成功と言わざるをえない。
688デフォルトの名無しさん
2017/09/18(月) 05:14:41.46ID:4HKrfROv ID:S40DCpdn は壊れたプログラマ
689デフォルトの名無しさん
2017/09/19(火) 04:18:18.94ID:GmtdcLyZ メモリを動かして処理すれば出来る事なのにな
出来る事を出来ないというのは間違い
出来る事を出来ないというのは間違い
690デフォルトの名無しさん
2017/09/19(火) 09:15:50.12ID:sOczhhK4 誰へのレスかすらわからないというね
誰も何も「出来ない」という趣旨のレスはしてないと思うが
独り言かね
誰も何も「出来ない」という趣旨のレスはしてないと思うが
独り言かね
691デフォルトの名無しさん
2017/09/19(火) 12:34:55.99ID:kI9ocUjD 前日に連続して意味不明な独り言してるやつがいるからそれの続きだろ
692デフォルトの名無しさん
2017/09/19(火) 17:17:32.47ID:xxOzXrDl ワッチョイ推奨
693デフォルトの名無しさん
2017/09/23(土) 13:33:17.07ID:J7EIO5I9 malloc()関数の内部はOSからメモリをまとめて取ってくる処理と、
すでに取ってきたメモリを(free()で空きが生じたとき)やりくりする処理の2本立て
前者の処理(システムコールの呼び出し)は比較的高コストなのでmalloc()の度に呼びはしない
また後者の処理は、連続したアドレス範囲のメモリを確保できている前提で動く
ページングはもっと下のレイヤーで行われるので、
malloc()のコード自体がMMUの有無やOSの違いを関知したりはしない
すでに取ってきたメモリを(free()で空きが生じたとき)やりくりする処理の2本立て
前者の処理(システムコールの呼び出し)は比較的高コストなのでmalloc()の度に呼びはしない
また後者の処理は、連続したアドレス範囲のメモリを確保できている前提で動く
ページングはもっと下のレイヤーで行われるので、
malloc()のコード自体がMMUの有無やOSの違いを関知したりはしない
694デフォルトの名無しさん
2017/09/23(土) 13:35:30.80ID:J7EIO5I9 例外的な変態実装は知らんが、まあ普通は
695デフォルトの名無しさん
2017/09/23(土) 14:27:08.01ID:Dvp9BlYO 最近はjavascriptのレイヤーとかまで出来てさらに複雑面倒に
696デフォルトの名無しさん
2017/10/26(木) 07:49:10.45ID:7YV3WIz9 かなり無駄な処理してそうだ
697デフォルトの名無しさん
2018/05/23(水) 21:27:23.53ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
3682F
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
3682F
698デフォルトの名無しさん
2018/07/05(木) 00:30:07.61ID:RfoszcD2 IZ6
699デフォルトの名無しさん
2018/08/31(金) 07:07:54.70ID:EIZBTnQd 保守
700デフォルトの名無しさん
2018/08/31(金) 23:14:14.49ID:qeyIwfZb 結論:GCは失敗
701デフォルトの名無しさん
2018/10/30(火) 23:04:20.19ID:POwfr3jz GCをルンバで例えたらどうだろう
自動
しかしテーブルの上や
冷蔵庫の中は片付けない
日常生活にさしさわりなく動いてほしい
自動
しかしテーブルの上や
冷蔵庫の中は片付けない
日常生活にさしさわりなく動いてほしい
702デフォルトの名無しさん
2018/10/30(火) 23:46:35.14ID:j0ABINKp それに加えてルンバが動けるように床は片付けておかないといけないとか
自動で上手く機能させるために気にしないといけない事が色々ある
自動で上手く機能させるために気にしないといけない事が色々ある
703デフォルトの名無しさん
2019/07/03(水) 08:55:46.04ID:XKc3eOoC もういらないって明示的に書かなきゃならないのなら自前で管理するのと一緒だよな。
アマチュアがサンデープログラムしたり、短時間で終了するアプリならむしろ楽チンだけど、
365日24時間稼働し続けるシステムには致命的な問題になるからなぁ
アマチュアがサンデープログラムしたり、短時間で終了するアプリならむしろ楽チンだけど、
365日24時間稼働し続けるシステムには致命的な問題になるからなぁ
704デフォルトの名無しさん
2020/02/13(木) 08:56:02.27ID:B+Fb/epo まあ落ちるアプリの多いこと
705デフォルトの名無しさん
2020/02/13(木) 15:29:41.61ID:z5cRWLgY GCがある言語でも、shallow copy と deep copy のどちらにすべきかの判断が難しくて、結局、間違えてバグの原因になる可能性がかなり残る。
また、C/C++ポインタのミスを危険視する人がいるが、多くの場合はプログラム開発時にテストをすれば間違いが発見できる。
C/C++でのバッファオーバーランを気にする人がいるが、逆にGCがある言語でも、間違って1つ右隣の要素にしてしまったり、処理する個数を1つ間違ったりするミスは有り得て、その場合、厳密な意味でのバッファオーバーランは無くても処理内容自体はバグる。
また、C/C++ポインタのミスを危険視する人がいるが、多くの場合はプログラム開発時にテストをすれば間違いが発見できる。
C/C++でのバッファオーバーランを気にする人がいるが、逆にGCがある言語でも、間違って1つ右隣の要素にしてしまったり、処理する個数を1つ間違ったりするミスは有り得て、その場合、厳密な意味でのバッファオーバーランは無くても処理内容自体はバグる。
706デフォルトの名無しさん
2020/02/22(土) 01:52:20.63ID:eI8xgqVo No GC派なんだけど、WebサーバーをC++とかで実装しても結局力持て余す感はあるよな
それだからかなり性能下げてもいいからちょっとでも早く作れるスクリプト言語採用されるってのもありそう
それだからかなり性能下げてもいいからちょっとでも早く作れるスクリプト言語採用されるってのもありそう
707デフォルトの名無しさん
2020/02/25(火) 21:09:36.95ID:EsX3m3+2 GCのメリットは言語の文法が簡単になること。
GCはスクリプト言語のためにある。
GCはスクリプト言語のためにある。
708デフォルトの名無しさん
2020/02/26(水) 10:49:39.07ID:wiEfavJ1 (destructor)()
dispose()
destroy()
close()
free()
delete
dispose()
destroy()
close()
free()
delete
709デフォルトの名無しさん
2021/10/13(水) 08:41:51.52ID:Qk99MJFD 今やGCのない言語でweb framework書く人間は絶滅危惧種
2022/12/27(火) 13:22:02.97ID:k0608tOt
このスレってガイジ扱いされてたけどRustとか出てきて実は正論だったんじゃね?って見直してるわ
711デフォルトの名無しさん
2022/12/27(火) 15:08:00.70ID:ITKU+yxr てへっ(∀`*ゞ)テヘッ
712デフォルトの名無しさん
2022/12/28(水) 20:55:42.01ID:kKtGrfmE おれはGCが最初から分かりづらいなぁと思ってたよ。mallocやnewより
713デフォルトの名無しさん
2022/12/29(木) 10:46:26.29ID:jCj0trE4 >>708
release
release
714デフォルトの名無しさん
2022/12/29(木) 16:52:23.68ID:HWC94+Gl GCは停止時間問題を解決できないまま生涯ふわふわした存在で居続けるのだよ
715デフォルトの名無しさん
2023/01/01(日) 09:16:28.52ID:A1pcbmVG716デフォルトの名無しさん
2023/02/08(水) 15:30:25.91ID:MLBtrq1u やはりGCは必要だった
WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
https://www.publickey1.jp/blog/23/webassemblychrome_111dartwebassembly.html
WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
https://www.publickey1.jp/blog/23/webassemblychrome_111dartwebassembly.html
717デフォルトの名無しさん
2023/02/10(金) 09:06:41.51ID:fIr5pCup すべてがBASICに戻る
718デフォルトの名無しさん
2023/02/11(土) 11:51:58.99ID:2GIAa1ZP >>717
それもいいな
それもいいな
719デフォルトの名無しさん
2023/03/08(水) 00:10:24.00ID:ZNO423TE GCを含め、「機械に不慣れな人でも簡単にプログラミングできるようにする」という
これまで高級言語が行ってきたような試みはすべてAIに取って替わられるような気がする
まあ、現時点のAIは使い物にならないかもしれないが、いずれは…
これまで高級言語が行ってきたような試みはすべてAIに取って替わられるような気がする
まあ、現時点のAIは使い物にならないかもしれないが、いずれは…
720デフォルトの名無しさん
2023/03/10(金) 23:04:44.35ID:hNo+M64i AIに「これはゴミか?」を学習させていって人間がゴミ認定される日も近い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★2 [BFU★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★8 [おっさん友の会★]
- 高市政権「生んだ以上は育てる」 麻生氏 [どどん★]
- 【東京】米兵が民家屋根にパラシュートで着陸か 羽村市、米軍に抗議へ [ぐれ★]
- 【実況】博衣こよりのえちえち雑談🧪
- 【高市有事】牛肉の対中輸出再開協議が中止wwwwwwwwwwwwwwww [834922174]
- 中川翔子「みんな、詐欺師には気をつけて!」 [942773469]
- 【👊専】ロケット🚀👊😅👊🚀パーンチww🏡
- 【高市悲報】吉村知事「サッカースタジアムの資金調達の状況についてよく注視しとく。自治体からの支援はノーコメントで。」 [466377238]
- 子どものインフルエンザ 感染時の異常行動 厚労省 「発熱から2日間は特に注意 [787212328]
