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
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に「これはゴミか?」を学習させていって人間がゴミ認定される日も近い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】Jリーグ観客動員が歴代最多を更新 初の「1300万人超え」達成…平均入場者数も史上最高に [尺アジ★]
- サナエノミクスについて力説 積極的な財政出動で「所得増える 消費マインド上がる 税収増える」片山さつき財務大臣 ★3 [少考さん★]
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 ★4 [Hitzeschleier★]
- 【芸能】粗品、日本テレビに苦言 客のレベルが「かなり低い。あいつら分かってない」「拍手したいだけやねん」 [冬月記者★]
- 山里亮太、フィリピンに子ども食堂を建設 「偽善者」「日本の子どもを助けるべき」の声があっても活動を続ける理由 [Anonymous★]
- 中国軍機のレーダー照射1週間 駆け引き続く 中国、米のレッドライン模索 日本、米以外の同志国とも連携探る 米は対立から距離置く★2 [ぐれ★]
- 【DAZN/ABEMA】ブンデスリーガ・DFBポカール★7
- 【U-NEXT】プレミアリーグ総合 ★45
- 【U-NEXT】プレミアリーグ総合 ★44
- こいせん 全レス転載禁止
- とらせん IP付き
- ハム専
- 【朗報】イーロン・マスク「AIとロボットで誰も働かなくて良くなる。全員ニートで金銭も税金もないパラダイスみてぇな国を作りてえ」 [347751896]
- ラーメン屋行ったら令和の時代に現金払いを要求された😡
- 安倍晋三の学歴詐称は許されたのに、伊藤市長は許されなかった理由って何? [603416639]
- 人生詰みそうな奴!
- ( ・᷄ὢ・᷅ )今はフリーです
- 【悲報】米山隆一と室井佑月、ガチで離婚しそうwwwwwwwwwwwwwwwwwwww [802034645]
