タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Programmingとpythonとmemoryに関するclavierのブックマーク (4)

  • Pythonで省メモリに大量の文字列を扱う工夫 - MNTSQ Techブログ

    たくさんの文字列(や離散的な符号列)をメモリに載せないといけないんだけど、いろんな制約があって通常のList[str]では載らない…ということありませんか?(まぁあんまりなさそうですね) たまたまそういうことがあったので、その際に検討した内容をまとめておきます TL;DR メモリをもっと増やしましょう 富豪的に解決できるならいつでもそれが最高です しかし、世の中それでなんとかならんこともたくさんあります 用途があうのであれば専用のデータ構造を採用する 例えばもし共通のprefixやsuffixが存在し、順序に興味がなければtrie treeなどが使えます 例えば、弊社であれば、法人名をメモリに持ちたいなんてときもあります。そういうときに法人名の辞書をtrieで持ったりすることがあります 「株式会社」「一般財団法人」や「銀行」といった共通語がたくさんでてくるのでtrie treeでごりごり削

    Pythonで省メモリに大量の文字列を扱う工夫 - MNTSQ Techブログ
  • Pythonのメモリ使用量を減らすポイント - Qiita

    今回は、iXce’s blog » Blog Archive » Optimizing memory usage in Python: a case study という記事を見つけて興味深かったので紹介したいと思います。何も説明書いてないところがあるので、詳しく知りたい人は元記事を読んでほしいです。 動機 プレーンテキストをGコードに変換するプログラムを書いている 3.8MB (14万Gコード) のファイルを読み込むと、244MBもメモリを使ってしまう だからメモリ使用量を減らしたい やったこと プロファイル どこがメモリをたくさん使ってるのか調べるためにHeapyを使う $ pip install guppy で入れられる。 するとこんな感じの結果が出力される。 Partition of a set of 225737 objects. Total size = 115386656 by

    Pythonのメモリ使用量を減らすポイント - Qiita
  • メモリリークとは何か - kuenishi's blog

    メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ

    メモリリークとは何か - kuenishi's blog
  • Pythonでメモリ消費量のプロファイルを取る - 西尾泰和のはてなダイアリー

    昨日Pythonでメモリをい過ぎた時に見直すポイントを書いたが、使ったツールの説明を忘れていた。 Guppy-PE: A Python Programming Environmentを使うとこんな感じの出力が得られる。 Partition of a set of 2330379 objects. Total size = 355901024 bytes. Index Count % Size % Cumulative % Kind (class / dict of class) 0 447287 19 125240360 35 125240360 35 dict of __main__.Node 1 53016 2 85891008 24 211131368 59 dict (no owner) 2 467204 20 66360776 19 277492144 78 str 3 457

    Pythonでメモリ消費量のプロファイルを取る - 西尾泰和のはてなダイアリー
  • 1