メモリ管理の話_エスキュービズム勉強会20140926

46 %
54 %
Information about メモリ管理の話_エスキュービズム勉強会20140926
Technology

Published on September 26, 2014

Author: s-cubism-recruit

Source: slideshare.net

Description

2014/9/26 エスキュービズム社内勉強会時に使用した資料になります。

メモリ管理の話 2014/09/05 エスキュービズム・テクノロジー勉強会

メモリ管理とは? 確保したメモリは、必ず破棄する char *hoge = (char*)malloc(10); //…… free(hoge);

メモリ管理とは? 確保したメモリは、必ず破棄する  => 結構難しい char *hoge = (char*)malloc(10); //…… <- ここでreturn、例外があるとリーク free(hoge);

メモリ管理とは? メモリ開放を絶対忘れないようにしよう

メモリ管理とは? メモリ開放を絶対忘れないようにしよう メモリ解放が必要ない仕組みを利用しよう

参照カウンタとガベージコレクション 不要になったメモリを自動的に開放する仕組み 参照カウント  参照されている数をカウントし、0になったらメモリ解放 ガベージコレクション  参照関係をたどり、見つかったオブジェクト以外を開放

言語毎のメモリ管理 手動管理  C C++(shared_ptrなし) 参照カウンタ  C++(shard_ptrあり) ガベージコレクション  Ruby D Java  -> Objectiv-C䛿䠛

言語毎のメモリ管理 手動管理  C C++(shared_ptrなし) 参照カウンタ  C++(shard_ptrあり) Objective-C(ARC) Swift ガベージコレクション  Ruby D Java  -> PHP䛿䠛

言語毎のメモリ管理 手動管理  C C++(shared_ptrなし) 参照カウンタ  C++(shard_ptrあり) Objective-C(ARC) Swift PHP ガベージコレクション  Ruby D Java  -> C#䛿䠛

言語毎のメモリ管理 手動管理  C C++(shared_ptrなし) 参照カウンタ  C++(shard_ptrあり) Objective-C(ARC) Swift PHP ガベージコレクション  Ruby D Java C# 

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ

参照カウンタ プロパティからの参照

参照カウンタ プロパティからの参照

参照カウンタ プロパティからの参照

参照カウンタ プロパティからの参照

参照カウンタ プロパティからの参照

参照カウンタ プロパティからの参照

参照カウンタ 弱点:循環参照

参照カウンタ 弱点:循環参照

参照カウンタ 対策:弱参照 (参照カウントを上げない参照)

参照カウンタ 多くの場合、子から親への参照をweakにする

参照カウンタ 多くの場合、子から親への参照をweakにする 代表的な例が、Objective-Cのdelegete - (void)viewDidLoad { [super viewDidLoad]; self.text_clientName.delegate = self; self.text_orderId.delegate = self; }

参照カウンタ 多くの場合、子から親への参照をweakにする 代表的な例が、Objective-Cのdelegete プロパティの定義でweakに @property (weak) id<ChoiceGroupViewControllerDelegate> delegate;

ガベージコレクタ(GC) 空いた時間に自動的にメモリを解放 使われているオブジェクトの参照を辿って使用中の オブジェクトを判別 ● コピーGC ● マーク&スイープ ● これらに+αした方式(世代別GC) 等が代表的

ガベージコレクタ(GC)

ガベージコレクタ(GC)

ガベージコレクタ(GC)

ガベージコレクタ(GC)

ガベージコレクタ(GC)

ガベージコレクタ(GC) ただし、万能ではない 無限に配列に追加する 子のオブジェクトを次々に参照する 等プログラムのバグでリークを起こすことも 後はライブラリのバグとか......

ガベージコレクタ(GC)

ガベージコレクタ(GC) メモリリーク対策 ● グローバルなコレクションへの追加は注意 ● Viewなど複雑な参照関係に注意 ● 怪しいと思ったら変数にnullを代入 ● 弱参照を使う(GCにも弱参照はある)

クロージャに気をつけよう クロージャとは? wikipedia(http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83% BC%E3%82%B8%E3%83%A3)より引用 䜽䝻䞊䝆䝱䠄䜽䝻䞊䝆䝱䞊䚸ⱥ: closure䠅䚸㛵ᩘ㛢ໟ䛿䝥䝻䜾䝷 䝭䞁䜾ゝㄒ䛻䛚䛡䜛㛵ᩘ䜸䝤䝆䜵䜽䝖䛾୍✀䚹䛔䛟䛴䛛䛾ゝㄒ 䛷䛿䝷䝮䝎ᘧ䜔↓ྡ㛵ᩘ䛷ᐇ⌧䛧䛶䛔䜛䚹ᘬᩘ௨እ䛾ኚᩘ䜢 ᐇ⾜᫬䛾⎔ቃ䛷䛿䛺䛟䚸⮬㌟䛜ᐃ⩏䛥䜜䛯⎔ቃ䠄㟼ⓗ䝇䝁䞊 䝥䠅䛻䛚䛔䛶ゎỴ䛩䜛䛣䛸䜢≉ᚩ䛸䛩䜛䚹 => 㛵ᩘእ䛾ኚᩘ䛜฼⏝䛷䛝䜛䝷䝮䝎ᘧ

クロージャに気をつけよう function convertEncording($line) { $encoding = mb_detect_encoding(implode(" ", $line)); if ($encoding !== 'UTF-8') { $line = __::map($line, function($v, $k, $line) { $encoding = mb_detect_encoding(implode(" ", $line)); return mb_convert_encoding($v, 'UTF-8', $encoding); }); } return $line; } ECsvUpload䜘䜚 䚷㔜」䛧䛯㛵ᩘ࿧䜃ฟ䛧䛜䛒䜛

クロージャに気をつけよう function convertEncording($line) { $encoding = mb_detect_encoding(implode(" ", $line)); if ($encoding !== 'UTF-8') { $line = __::map($line, function($v, $k, $line) { // $encoding = mb_detect_encoding(implode(" ", $line)); return mb_convert_encoding($v, 'UTF-8', $encoding); }); } return $line; } 䛣䜜䛿䛷䛝䛺䛔

クロージャに気をつけよう function convertEncording($line) { $encoding = mb_detect_encoding(implode(" ", $line)); if ($encoding !== 'UTF-8') { $line = __::map($line, function($v, $k, $line) use ($encoding) { // $encoding = mb_detect_encoding(implode(" ", $line)); return mb_convert_encoding($v, 'UTF-8', $encoding); }); } return $line; } ᫂♧ⓗ䛻䜻䝱䝥䝏䝱䛧䛺䛡䜜䜀䛺䜙䛺䛔 䚷=> 䜽䝻䞊䝆䝱䛿እ㒊ኚᩘ䜈䛾ཧ↷䜢ᣢ䛴

クロージャに気をつけよう 昔、RequestHelperにも クロージャによる循環参照があった。

クロージャに気をつけよう

クロージャに気をつけよう 䜽䝻䞊䝆䝱ෆ䛷䜽䝻䞊䝆䝱⮬㌟䜢ཧ↷ 䚷-> 䝁䞁䝟䜲䝷䛻䜒㆙࿌䛥䜜䛶䜛

クロージャに気をつけよう

クロージャに気をつけよう

クロージャに気をつけよう

クロージャに気をつけよう 循環参照!

C#のイベントに気をつけよう C#のイベントは強参照のコレクション Viewに登録することが多い イベントにはクロージャを登録できる => リークしやすい view.onClick += (Event e) { // ……. }

Add a comment

Related presentations

Related pages

Javaメモリ勉強会 - Technology - DOCUMENTS.TIPS

Java のメモリについて、2007/07/23 にアプレッソ社内向けに行った勉強会 ...
Read more

Yaminabe:うにばな メモリ使用量の最適化・ヒープメモリ ほか - livedoor Blog(ブログ)

メモリ管理の側面からlinqはとにかく良く ... メモリ管理の話_エスキュービズム勉強会20140926 ...
Read more

Yaminabe:シリーズ講座 - livedoor Blog(ブログ)

メモリ管理の側面からlinqはとにかく良く ... メモリ管理の話_エスキュービズム勉強会20140926 ...
Read more

ちょっと手抜きだけど∑(゚Д゚)「なんちゃってエッグベネディクト」がウマイ - NAVER まとめ

おしゃれな朝食メニューだと大人気のエッグベネディクト!自分で作るのは難しいからといって「なんちゃって ...
Read more