string-interning

    11

    2答えて

    python 3.5では、いつ私たちが内部文字列を取得するのか、またはコピーを取得するのかを予測することはできますか?この問題に関するいくつかのStack Overflowの回答を読んだところで、私はthis oneが最も役に立つが包括的ではないことが分かった。私は通常Python docsに見えたが、インターンはデフォルト によって保証されていないよりも、Pythonプログラムで使用される名前は

    5

    1答えて

    私は整数を多くの整数が同じ文字列にマップされる単語文字列にマッピングすることを含むPythonユーティリティを構築しています。私の理解では、Pythonは短い文字列とほとんどのハードコーディングされた文字列をデフォルトで使用しています。その結果、文字列の "正規"バージョンをテーブルに保持することによってメモリオーバーヘッドを節約します。文字列のインターンがキーハッシュの最適化のためにより多く構築

    2

    0答えて

    これは、Pythonの文字列インターンに関する私の以前の質問のフォローアップですが、別の質問としてはそれほど関係がないと思います。 要するに、sys.internを使用する場合、大部分の/毎回の使用時に問題の文字列を関数に渡す必要がありますか?または、文字列を一度インターンにしてその参照を追跡するだけですか?私はが正しいと思い何擬似codeishユースケースを明確にする : (コメントを参照してく

    5

    1答えて

    私たちは、hibernateバリデーターを使用して、プロジェクト(ロードクラス別のクラスローダーに)で動的にクラスローディングします。クラスが必須ではないことが分かった後、クラスとクラスローダへの参照をすべて削除し、GCはこれを収集します。 入手方法:アプリケーションの起動後しばらくすると、Javaのリフレクションが停止します。 java.lang.reflect.UndeclaredThrowa

    -1

    2答えて

    は、Javaコンパイラがインターンをしない理由、それは、上記のコードは動作しません。しかし!、(私はコンパイラによってインターン文字列を認識してい) String[] s1 = {"testString","teststring2"}; String[] s2 = {"testString","teststring2"}; if(s1 == s2)System.out.println("equ

    4

    1答えて

    内部文字列のためにf#でカスタム文字列型を実装することは何ですか?私は大きなCSVファイルをメモリに読み込まなければなりません。ほとんどの列がカテゴリであるとすると、値は繰り返され、新しい文字列を最初に作成し、それ以降の発生時にメモリを節約するために参照するだけです。 私はグローバルなインターンプール(並行するdict)を作成し、値を設定する前に、辞書がすでに存在する場合はそれを検索します。存在す

    10

    2答えて

    Pythonの以前のバージョン(私は覚えていません)では、interned dictへの参照を取得するために、任意の内部文字列のgc.get_referrersを呼び出すことができました。 これはPython 2.7.5では動作しなくなりました。gc.get_referrers(...)は、それが返すリストにinterned dictを含まなくなりました。 Python 2.7.5では、インターン

    2

    2答えて

    Pythonのinternを使用してPython 2とPython 3の両方で動作する(互換性がある)コードを作成するにはどうすればよいですか?それを行うためのきれいな方法はありますか? Python 2では、internは組み込み型なので、intern()を使用します。 Python 3では、それはsysモジュールに移動されているので、sys.intern()を使用するはずです。 intern(

    1

    2答えて

    はのは、次のように私はクラスがあるとしましょう:次のコードは、真なり class Apple { String apple; Apple(String apple) { this.apple = apple; } } 何? public boolean result() { Apple a = new Apple("apple");

    1

    1答えて

    私は文字列インターンを理解しようとしています。学習以外の真の目的ではありません。私がでてるのはここ です: 文字列は不変と参照型です。この不変性により、文字列のインターンを行うことができます。 文字列インターンなしでは、2つの文字列はヒープ上の2つの文字列になります。 private static void Main() { var a = "foo"; var b = "f