[過去ログ]
GCは失敗。メモリは自分で管理せよ! その2©2ch.net (720レス)
GCは失敗。メモリは自分で管理せよ! その2©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1447856699/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
659: デフォルトの名無しさん [] 2017/09/17(日) 13:06:26.21 ID:S40DCpdn いくら64bitあっても設計が雑ならメモリ枯渇するでしょ ページング方式でメモリ消費されてんだし http://mevius.5ch.net/test/read.cgi/tech/1447856699/659
661: デフォルトの名無しさん [] 2017/09/17(日) 13:32:07.34 ID:S40DCpdn 1回のメモリ取得で4kづつ消費されるわけか http://mevius.5ch.net/test/read.cgi/tech/1447856699/661
662: デフォルトの名無しさん [] 2017/09/17(日) 13:49:19.58 ID:S40DCpdn ツリー状のメモリ管理するとあっという間にメモリ無くなるな class CTree{ std::vector<CTree>; }; とか http://mevius.5ch.net/test/read.cgi/tech/1447856699/662
663: デフォルトの名無しさん [] 2017/09/17(日) 14:00:55.72 ID:S40DCpdn こうするとさらにメモリが消えていくな class CTree{ std::map<std::string,CTree>; }; http://mevius.5ch.net/test/read.cgi/tech/1447856699/663
664: デフォルトの名無しさん [] 2017/09/17(日) 14:12:30.87 ID:S40DCpdn 間違えた。 class CTree{ std::vector<CTree> m_Tree; }; class CTree{ std::map<std::string,CTree>m_Tree; }; で、ツリーのノード一つ毎に上は4kづつ下は8kづつメモリを消費するわけで・・・ http://mevius.5ch.net/test/read.cgi/tech/1447856699/664
666: デフォルトの名無しさん [] 2017/09/17(日) 15:38:01.00 ID:S40DCpdn https://ja.wikipedia.org/wiki/動的メモリ確保 >また、粒度の細かいページングは、ページングテーブル >(物理アドレスと論理アドレスの対応表)が大きくなるため、 >4KB程度の大きなブロック単位でしか割り当てることができない。 ウィキペディア見るとそのアフォな実装がまかり通ってると読めるんだが・・・ http://mevius.5ch.net/test/read.cgi/tech/1447856699/666
668: デフォルトの名無しさん [] 2017/09/17(日) 16:00:06.71 ID:S40DCpdn こっちも参考になる https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E7%AE%A1%E7%90%86%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88 CPUによってMMUの実装が異なる点は面倒だな http://mevius.5ch.net/test/read.cgi/tech/1447856699/668
669: デフォルトの名無しさん [] 2017/09/17(日) 16:06:24.06 ID:S40DCpdn >>667 ちゃんとmallocやnew時のアドレス確認はしたか??かなりアフォな動作してるぞ? まあ、多少のrealloc程度の処理なら何とかしてくれるけどな。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/669
672: デフォルトの名無しさん [] 2017/09/17(日) 16:17:49.54 ID:S40DCpdn MMUは多少以上の処理をすると簡単にフォールト返すのが困りもの 結局初心者レベルのプログラマしか想定してないんだよな http://mevius.5ch.net/test/read.cgi/tech/1447856699/672
673: デフォルトの名無しさん [] 2017/09/17(日) 16:30:36.71 ID:S40DCpdn >>671 realloc使った事ある? http://mevius.5ch.net/test/read.cgi/tech/1447856699/673
675: デフォルトの名無しさん [] 2017/09/17(日) 16:37:39.46 ID:S40DCpdn 複雑なことをしていると、それがまるで正しいかのように思う点がアフォ 多少複雑なことをしていてもアフォな挙動をする可能性はあると考えるべき http://mevius.5ch.net/test/read.cgi/tech/1447856699/675
676: デフォルトの名無しさん [] 2017/09/17(日) 17:05:23.31 ID:S40DCpdn malloc,newの挙動の説明ってまんまMMUの説明なんだよな だから複雑なアルゴリズムを使われていると思うのはMMUが複雑な挙動をしているから でも、そんなに複雑な挙動してるか?? 単に過去のアプリとの互換性の問題で変な事をしているだけだぞ http://mevius.5ch.net/test/read.cgi/tech/1447856699/676
677: デフォルトの名無しさん [] 2017/09/17(日) 17:16:19.17 ID:S40DCpdn たいがいのmalloc,newはMMU次第でいくらでも挙動が変化するからな ちゃんとPC毎に動作確認したか?? http://mevius.5ch.net/test/read.cgi/tech/1447856699/677
679: デフォルトの名無しさん [] 2017/09/17(日) 17:55:14.06 ID:S40DCpdn malloc,newの挙動はハードとOSによって変化するという記述は見たことあるけどな http://mevius.5ch.net/test/read.cgi/tech/1447856699/679
680: デフォルトの名無しさん [] 2017/09/17(日) 18:02:58.95 ID:S40DCpdn ごめん、ハードとソフトウェアだった http://mevius.5ch.net/test/read.cgi/tech/1447856699/680
682: デフォルトの名無しさん [] 2017/09/17(日) 21:59:59.26 ID:S40DCpdn 自分はメモリ対策プログラムを作って対応したけどな。 メモリサイズを三種類用意して、メモリに対するガードの確実な作りにした。 現在のサイズに使われてるサイズにリミットサイズの三種類のサイズな。 外に出てくるサイズは現在のサイズ、 使われてるサイズはメモリを増やした場合の最大取得サイズで、事実上の取得サイズ、 リミットサイズは取得できるメモリの上限。 で、これらを組み合わせてスーパークラスを作って基本的に対応させてる。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/682
683: デフォルトの名無しさん [] 2017/09/17(日) 22:08:00.63 ID:S40DCpdn メモリの増減には現在のサイズで対応し、このサイズが必要以上に大きくなると 使われてるサイズを拡張するようにした。リミットサイズは滅多に使わないけれども、 一応対応させた。 メモリに対する読み書きは専用関数を経由して読み書きするようにしたから、 素人が使っても安全なぐらいのプログラムになってる。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/683
684: デフォルトの名無しさん [] 2017/09/17(日) 22:27:01.93 ID:S40DCpdn あと、動的配列ってのを作って、複数のメモリ取得に対応させた。 メモリにヘッダとフッタを用意して、フッタには複数配列のデータに対応させ、 ヘッダには配列数とメモリサイズを入れてる。フッタには>>682のデータを持たせた。 ある意味では拡張コンパクションみたいなモノになった。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/684
685: デフォルトの名無しさん [] 2017/09/17(日) 22:33:12.53 ID:S40DCpdn で、アローケートが一回だけになるようにして、あとはリアロークで対応させた。 おかげでメモリの消費効率は異常なまでに効率よく使えるようになったよ。 あと、動的配列使う場合はいったんメモリをフォーマットするようにしたけどね。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/685
686: デフォルトの名無しさん [] 2017/09/17(日) 23:21:53.67 ID:S40DCpdn それから、動的配列は入れ子構造にすれば色々と応用がきくようになってるけどな。 で、追記式みたいにデータが動くツリー構造とかが使えるようになってる。 http://mevius.5ch.net/test/read.cgi/tech/1447856699/686
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s