問題タブ [stringbuilder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - String[]からStringBuilderに追加するLINQ
LINQを介して文字列ビルダーに追加したい文字列配列があります。
私が基本的に言おうとしているのは、「この配列の各項目について、このStringBuilderに行を追加する」ということです。
foreachループを使用してこれを非常に簡単に行うことができますが、次のコードは何もしないようです。私は何が欠けていますか?
これが機能する場所:
hibernate - Hibernate:ログメッセージを出力するときにBlobを永続化するOutOfMemoryError
私はHibernateエンティティを持っています:
私のVMは512MBの最大ヒープサイズで構成されています。75 MBの大きなオブジェクトを持つオブジェクトを永続化しようとすると、OutOfMemoryErrorが発生します。
スタックトレースのメソッドの名前(StringBuilder、ByteArrayBlobType.toLoggableString、pretty.Printer.toString)は、hibernateがオブジェクトを含む非常に大きなログメッセージを書き込もうとしていることを示しています。
hibernateが大量のメモリを使用している理由について正しいですか?この問題を回避する最も簡単な方法は何ですか?
java - 標準のJava stringbuilder.appendを使用するよりも、文字列を追加するパフォーマンスが向上します
検索エンジンに入力するプロセスの一環として、Berekely-DB 値ストアにも入力します。このプロセスは毎晩繰り返され、現在、毎晩の総実行時間の +/- 60% は、値ストアに挿入される値を作成することによって発生します (したがって、Berekely-DB への実際の挿入と発生した時間は除外されます)。 Berekely クライアントによる
これらの値は、各キーに stringbuilder を割り当て、そのような stringbuilder に平均で約 1000 個の文字列を追加することによって作成されます。結果の平均値は約 10k です。次のことを考えると、これをより効率的に行うことができるかどうか疑問に思っています。文字列は末尾に追加されます。
たとえば、stringbuilder を char[] または characterStream / writer に交換すると、パフォーマンスが向上しますか? そうすれば、char[] に書き込む場所を保持してインデックスを付けることができます。
ありがとう、Geert-Jan
c# - StringBuilder での興味深い OutOfMemoryException
ループ内で大きな文字列を継続的に構築し、それらをデータベースに保存する必要がありますが、現在、OutOfMemoryException
.
ここで基本的に行われているのは、いくつかのデータに基づいてXmlWriter
withを使用して文字列を作成することです。StringBuilder
次に、この xml 文字列を別の文字列に変換する外部ライブラリのメソッドを呼び出します。その後、変換された文字列がデータベースに保存されます。このすべてが、さまざまなデータに対して約 100 回のループで繰り返し実行されます。
文字列自体はそれほど大きくなく (それぞれ 500kByte 未満)、プロセス メモリはこのループ中に増加しません。それでも、時々私はOutOfMemeoryExcpetion
以内にStringBuilder.Append
. 興味深いことに、この例外によってクラッシュが発生することはありません。その例外をキャッチして、ループを続行できます。
ここで何が起こっているのですか?OutOfMemoryException
システムに使用可能な空きメモリがまだ十分にあるのに、なぜエラーが発生するのですか? これはGCヒープの問題ですか?
これらすべての文字列の変換を回避できない場合、これを確実に機能させるにはどうすればよいでしょうか? GC コレクションを強制する必要がありますか? Thread.Sleep
aをループに入れる必要がありますか? 使用をやめるべきStringBuilder
ですか?OutOfMemoryException
?に直面したときは、単純に再試行する必要があります。
c# - .NET 文字列と参照型パラメーター
次のコードはどのように機能しますか?
StringBuilder
との両方String
が参照型である場合、メソッドを介して渡すときに文字列オブジェクトが変更されないのはなぜですか? メソッドへの両方のパラメーターが参照型をパラメーターとして取っているためAppendBar
、StringBuilder オブジェクトはメソッドに渡すときに変更されます。AppendFoo
groovy - GroovyリテラルStringBuilder/StringBuffer
Groovyは、通常の代わりにStringBuilder/StringBufferを作成するためのリテラル構文をサポートしています
しかし、正しい構文を思い出せない(またはGoogleで見つけられない)ようです。
c# - StringBuilderを使用するのはいつですか?
StringBuilderの利点を理解しています。
しかし、2つの文字列を連結したい場合は、StringBuilderなしで連結する方が良い(速い)と思います。これは正しいです?
どの時点(文字列の数)でStringBuilderを使用する方が良いですか?
c# - 安全でないコードと StringBuilder を使用した修正されたステートメント
パラメータで文字列を出力するC関数にStringまたはStringBuilderを渡す方法について疑問に思っていました。私は素晴らしい答えを見つけました
C# からアンマネージ関数を呼び出す: StringBuilder を渡すか、安全でないコードを使用する必要がありますか?
しかし、私には疑問があります。インポートされた関数の実行中にガベージ コレクターが (マネージド) StringBuilder インスタンスを再配置しない理由を誰でも説明できますか?
c# - Rope データ構造が文字列ビルダーよりも効率的であるシナリオはありますか?
この質問に関連して、ユーザーEric Lippertのコメントに基づいています。
Ropeデータ構造が文字列ビルダーよりも効率的であるシナリオはありますか? 一般的なケースでは、ロープのデータ構造がネイティブの文字列または文字列ビルダーの操作よりも速度の点で優れていることはほとんどないという意見もあるため、実際にロープが優れている現実的なシナリオを見てみたいと思います。
c# - StringBuilderオブジェクトの現在の文字列をクリアする
StringBuilderが現在保持しているものをすばやく簡単に取り除く方法はありますか?
Clear()メソッドを探していましたが、見つかりません。;)
私がしたい
またはそれらの線に沿った何か。