多くのクローンを回避するために文字列をより適切に保存するにはどうすればよいですか?

squiguy

私はtokioのUdpCodec特性を使用しています:

pub trait UdpCodec {
    type In;
    type Out;
    fn decode(&mut self, src: &SocketAddr, buf: &[u8]) -> Result<Self::In>;
    fn encode(&mut self, msg: Self::Out, buf: &mut Vec<u8>) -> SocketAddr;
}

私の関連するタイプはInです(SocketAddr, Vec<Metric>)Metricと定義されている:

#[derive(Debug, PartialEq)]
pub struct Metric {
    pub name: String,
    pub value: f64,
    pub metric_type: MetricType,
    pub sample_rate: Option<f64>,
}

所有する文字列を使用して、関連するタイプの有効期間の制約を回避しました。ただしHashMap、他の関数でメトリックを借用しているため、これらのメトリック名を使用しルックアップと挿入も行います。これには、多くのクローン作成が含まれます。

Metric多くの非効率的なクローンを回避するために、このタイプ内に文字列をより適切に格納するにはどうすればよいですか?Cowタイプを使用することは私の頭をよぎりましたが、それは明らかに生涯の関連性も持っています。

マシューM。

@Joshの提案を拡張して、インターンを使用することをお勧めします。

タスクのメモリまたはCPUの負荷に応じて、次のいずれかを選択します。

  • 二重ハッシュマップ:ID<-> String、コンポーネント間で共有
  • 単一のハッシュマップ:String->Rc<str>

後者を買う余裕があれば、絶対にお勧めします。またMetricTypeRc内で折りたたむことができる可能性があることにも注意してくださいRc<(MetricType, str)>

次にclone、左と右を呼び出す必要がありますが、それぞれは安価な非アトミックインクリメント操作です...そしてマルチスレッドへの移行は、を交換Arcするのと同じくらい簡単ですRc

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

証明書の問題を回避するためにバークを適切に構成するにはどうすればよいですか?

分類Dev

Cで保存された文字列を適切に使用するにはどうすればよいですか

分類Dev

文字列をローカライズするためにVarArgsを適切に使用するにはどうすればよいですか?

分類Dev

メモリリークを回避するためにID3D11ShaderResourceView **を適切に解放するにはどうすればよいですか?

分類Dev

Spring MVCコントローラーに多くのサービスを適切に挿入するにはどうすればよいですか?

分類Dev

SimpleDateFormatで解析するためにDateTimePickerから日付文字列を適切にフォーマットするにはどうすればよいですか?

分類Dev

Python:文字列を適切に分割してcsv形式で保存するにはどうすればよいですか?

分類Dev

再定義を回避するためにマクロを作成するにはどうすればよいですか?

分類Dev

bashで配列を拡張するために複数文字の区切り文字を使用するにはどうすればよいですか?

分類Dev

「アドレスはすでに使用されています」エラーを回避するために、TcpListenerを適切にクリーンアップするにはどうすればよいですか?

分類Dev

クローン作成方法を適切に継承するにはどうすればよいですか?

分類Dev

Javaで多くのチェックを回避するにはどうすればよいですか?

分類Dev

データのリストをSQLに適切に保存するにはどうすればよいですか?

分類Dev

ボリュームを計算するためのプログラムで分数を適切に表示するにはどうすればよいですか?

分類Dev

ユーザーのデータを適切に保存するにはどうすればよいですか?

分類Dev

クリップボードに情報を保存するためのプロンプトを削除するにはどうすればよいですか?

分類Dev

より多くの列を簡単に作成するにはどうすればよいですか?

分類Dev

UILabelのコンテンツのサイズを適切に変更するにはどうすればよいですか?(よりよく理解するために投稿内の写真を参照してください)

分類Dev

区切り文字がないようにパンダのデータフレームを保存するにはどうすればよいですか?

分類Dev

Android:recyclerViewのバックグラウンドでより多くのデータをロードするにはどうすればよいですか

分類Dev

文字列のリストを適切な文に変換するにはどうすればよいですか

分類Dev

非同期使用のために設計されたインターフェースを適切に実装するにはどうすればよいですか?

分類Dev

Javaで高速の疑似乱数文字列を生成するためにコードを最適化するにはどうすればよいですか?

分類Dev

カード内の要素をより適切に表示するにはどうすればよいですか?

分類Dev

より多くのボタンの前に TextView を表示するにはどうすればよいですか?

分類Dev

sedを使用した挿入パターンが文字列の中央に適用されないようにするにはどうすればよいですか?

分類Dev

Java ResourceBundle文字列での繰り返しを回避するにはどうすればよいですか?

分類Dev

10回のクリックでAPIからより多くの画像をロードし、50に制限するにはどうすればよいですか?

分類Dev

セミコロンで区切られた文字列を文字列とは別の項目に分割するにはどうすればよいですか?

Related 関連記事

  1. 1

    証明書の問題を回避するためにバークを適切に構成するにはどうすればよいですか?

  2. 2

    Cで保存された文字列を適切に使用するにはどうすればよいですか

  3. 3

    文字列をローカライズするためにVarArgsを適切に使用するにはどうすればよいですか?

  4. 4

    メモリリークを回避するためにID3D11ShaderResourceView **を適切に解放するにはどうすればよいですか?

  5. 5

    Spring MVCコントローラーに多くのサービスを適切に挿入するにはどうすればよいですか?

  6. 6

    SimpleDateFormatで解析するためにDateTimePickerから日付文字列を適切にフォーマットするにはどうすればよいですか?

  7. 7

    Python:文字列を適切に分割してcsv形式で保存するにはどうすればよいですか?

  8. 8

    再定義を回避するためにマクロを作成するにはどうすればよいですか?

  9. 9

    bashで配列を拡張するために複数文字の区切り文字を使用するにはどうすればよいですか?

  10. 10

    「アドレスはすでに使用されています」エラーを回避するために、TcpListenerを適切にクリーンアップするにはどうすればよいですか?

  11. 11

    クローン作成方法を適切に継承するにはどうすればよいですか?

  12. 12

    Javaで多くのチェックを回避するにはどうすればよいですか?

  13. 13

    データのリストをSQLに適切に保存するにはどうすればよいですか?

  14. 14

    ボリュームを計算するためのプログラムで分数を適切に表示するにはどうすればよいですか?

  15. 15

    ユーザーのデータを適切に保存するにはどうすればよいですか?

  16. 16

    クリップボードに情報を保存するためのプロンプトを削除するにはどうすればよいですか?

  17. 17

    より多くの列を簡単に作成するにはどうすればよいですか?

  18. 18

    UILabelのコンテンツのサイズを適切に変更するにはどうすればよいですか?(よりよく理解するために投稿内の写真を参照してください)

  19. 19

    区切り文字がないようにパンダのデータフレームを保存するにはどうすればよいですか?

  20. 20

    Android:recyclerViewのバックグラウンドでより多くのデータをロードするにはどうすればよいですか

  21. 21

    文字列のリストを適切な文に変換するにはどうすればよいですか

  22. 22

    非同期使用のために設計されたインターフェースを適切に実装するにはどうすればよいですか?

  23. 23

    Javaで高速の疑似乱数文字列を生成するためにコードを最適化するにはどうすればよいですか?

  24. 24

    カード内の要素をより適切に表示するにはどうすればよいですか?

  25. 25

    より多くのボタンの前に TextView を表示するにはどうすればよいですか?

  26. 26

    sedを使用した挿入パターンが文字列の中央に適用されないようにするにはどうすればよいですか?

  27. 27

    Java ResourceBundle文字列での繰り返しを回避するにはどうすればよいですか?

  28. 28

    10回のクリックでAPIからより多くの画像をロードし、50に制限するにはどうすればよいですか?

  29. 29

    セミコロンで区切られた文字列を文字列とは別の項目に分割するにはどうすればよいですか?

ホットタグ

アーカイブ