8

私が最近遭遇しzmallocた . (実際、これはzmallocSO に関する 3 番目のタグ付きの質問にすぎません)。

私は以下を集めました:

  • zmalloc は、C++ スマート ポインターと同様に、解放されていないメモリを自動的に追跡し、解放します。
  • zmalloc は、少なくともredis source の場合、明らかにいくつかのメトリクスを有効にします。

だから私の質問は:

  1. では、malloc よりも zmalloc を使用すると、どのような柔軟性が失われるのでしょうか? つまり、zmalloc になくて malloc が引き続き提供する利点は何ですか?
  2. C11ではzmallocは非標準ですか? これはカスタムビルドの関数ですか?
4

1 に答える 1

13

zmalloc は redis-tools ( https://github.com/antirez/redis-tools ) の一部のようです。redis は、メモリにデータを保持する一種のデータベースです ( http://redis.io/ )。

通常、malloc の代替が開発されるのは、一部のターゲット システムが適切な malloc を提供しないか、呼び出し元が追加の機能を必要とするためです。zmalloc はシステム malloc/free の非常に単純なラッパーであり、割り当てられたメモリ全体を追跡するだけだと思います。自動解放は関係ありません。あなたが指摘した投稿では、必要性についても説明しています。データベースは、一定量以上のメモリを使用しないように構成できるため、全体的な消費量を追跡する必要があります。

于 2014-03-29T10:39:26.757 に答える