(以下はgo 1.2.x時点での話です。将来的に仕様がかわるかどうかはわかりません) これを読んでいて、こういうの気にしてない人多いんだろうなーと思って、書いてみます。元のポストはdeferの挙動について語っているように見受けられるけれども、これは要は複数スレッドで実行されるコードについて、プログラム終了時に同期とか取りたくない、という話だと思ったので、このポストのdeferを正しく動かすには…というところからどういう形でgoroutine同士で同期を取る方法があるのか、一例を書き出していきます。 TL;DR; goでいくらgoroutineが気軽にかけるからと言って、複数スレッドで処理が行われているので同期はキチンとやらないとダメですよ。 deferの基本 goではLLのノリでコードを書けるのが売りの一つですが、メモリ管理はしてくれるものの、様々なリソース解放も全て自動というわけではあり
Perlで大規模な処理をしたときに、メモリに気を使わないといけないことがあって、メモリの開放について調べたときに、以下のページを見て、スコープ外れただけではメモリ開放されないことを知ったので、自分でも試してみた。 http://skitai.blog98.fc2.com/blog-entry-49.html メモリ使用量の確認には Devel::MemUsed を利用。昔はcpanにあったぽいけど、今はないようなので、https://github.com/jozef/devel-memused からcloneして使う use v5.14; use strict; use warnings; use lib glob "modules/*/lib"; use Devel::MemUsed; my $mem_used = Devel::MemUsed->new; $mem_used->rese
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く