GoはPythonのようなLLと比べると実行速度は速いのですが、GCは特別速いわけではないので、相対的にGCがパフォーマンスに与える影響は大きくなります。 また、Java に比べると、一時オブジェクトなどのために頻繁にヒープアロケーションを行うとGCの停止時間が長くなりがちですが、一方でヒープアロケーションを避けたプログラミングがしやすい言語でもあります。 MySQL ドライバのような低レイヤーのライブラリを作る場合、アプリケーション側の性能要件を勝手に決めることができないので、現実的な範囲でアロケーションを減らす努力をするべきです。 ということで、前回の記事 で紹介したプレースホルダ置換を実装するにあたって経験した、アロケーションに気を使ったプログラミングについて、チューニングする手順やコード上のテクニックを紹介したいと思います。 1. まずは正しく動くものを作る go-sql-driv
NOKUBI Takatsugu野首貴嗣 @knok jemalloc以外に、Doug Leaの作成したmallocというのがあることを知った: Doug Lea's Workstation - http://t.co/KDRtQpXw29 2013-10-08 13:10:28
ちょっと複雑なアルゴリズムをPythonで実装してみて、自分の予想以上にメモリを食ってしまったので何が原因なのかプロファイルしてみた。 辞書を大量に使ってはいけない 指摘されてみれば当たり前のことなんだけども、辞書はハッシュテーブルなのでメモリをたくさん使う。「グラフの頂点ごとに整数→整数のマッピングを持ちたいな」と思って、うっかり辞書を使ってしまったのだが、エントリー数が6個でも 1048バイト×頂点数 のメモリが吹っ飛んでいく。いくらハッシュのアクセスがO(1)だからといって、1048バイトmallocしてスラッシング起こしてんだったら全然安くない。エントリの個数とアクセス頻度によってはO(n)で線形探索したほうがよっぽどよい。 エントリーの個数が5件までならハッシュテーブルではないコンパクトな持ち方をするので280バイト。それでもでかい。 自作クラスのインスタンスも辞書を持っている
江添亮 自由ソフトウェア主義者 C++ Evangelist C++標準化委員会の委員 ドワンゴ社員 C++11本を執筆した。 株式会社ドワンゴで働いている。 Mail:boostcpp@gmail.com Twitter:@EzoeRyou GitHub: https://github.com/EzoeRyou 江添亮のマストドン@EzoeRyou 筆者にブログのネタを提供するために、品物をアマゾンお気に入りリスト経由で送りたい場合: Amazon.co.jp: 江添亮: 江添のほしい物リスト 筆者にブログのネタを提供するために、直接に品物を送りたい場合、住所をメールで質問してください。 View my complete profile ► 2020 (31) ► December (2) ► November (2) ► September (2) ► August (4) ► Jul
Oracle, Open Source, Private特にパフォーマンステストをやってるといろいろとOSの環境を変えて結果を見比べたくなるときがあります。その中で「メモリ容量を変えたらどうなるか?」というときがしばしばあります。パワープレイでこれを実現するには、よっこらしょ、とラックからサーバを引き出し、ケースをパカッと開けてメモリを引っこ抜くという技が最初に思いつきます。しかしデュアルチャネル構成の場合短絡的にそんなことをしちゃうとサーバが起動しなくなってしまう可能性がありますし、そもそも現場まで言って作業するというのが原始的です。 簡単な方法は、カーネルの起動パラメータ「mem」でOS(カーネル)が認識するメモリ容量を指定してあげるやり方です。これは/boot/grub/grub.confを直接編集して静的に設定してもいいですし、起動時にgrubメニューで都度設定してもOKです。 例
PC100 144ピン SO-DIMM PC2700 DDR SO-DIMM PC6400 DDR2 SO-DIMM PC10600 DDR3 SO-DIMM DDR4 SO-DIMM SODIMM DDR Memoryの比較 SO-DIMM(small outline dual in-line memory module、エスオーディム、ソーディム)はコンピュータで使用するメモリモジュールの規格の一種である。その用途から販売店などではノートPC用メモリとも呼ばれる[1]。 概要[編集] SO-DIMMはDIMMに対してより小さなサイズでモジュールを提供するための規格であり、その大きさはDIMMの約半分とされている。そのためSO-DIMMは主にノートパソコンや省スペースパソコンで使用される。さらに、プリンターやルーターを始めとするネットワーク機器の機能拡張の際にも用いられる。 SO-DIM
Firefox web browser - Faster, more secure & customizable Firefoxの開発者はメモリの使用量削減に取り組み続けている。すでにかなりの効果が上がっており、新しいバージョンが出るごとにメモリの使用量は減り続けている。そして最近、この活動で大きな進展があった。「ObjShrink」と呼ばれる取り組みで、システムコンパートメントのみならずそれぞれのコンテンツに対してもメモリ使用量の削減が実現されている。 具体的な内容は「MemShrink progress, week 25」において紹介されている。取り組みはBrian Hackett氏によるもので、JavaScriptオブジェクトのサイズを32ビットプラットフォームにおいて48バイトから16バイトへ減らすというもの。大幅な改善だ。JavaScriptオブジェクトに付随するデータ構造のメモ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く