[解決済み] Rubyでシングルクォートとダブルクォートを使い分けるとパフォーマンスが上がりますか?
2022-07-10 19:29:14
質問
Ruby 1.8 と 1.9 で、シングルクォートの代わりにダブルクォートを使用すると、パフォーマンスが低下するかどうかを知っていますか?
と入力すると
question = 'my question'
よりも速いのでしょうか?
question = "my question"
Rubyが二重引用符に出会ったとき、何かが評価される必要があるかどうかを見つけようとし、おそらくそのためにいくつかのサイクルを費やしていると想像しています。
どのように解決するのですか?
$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.0.0]
$ cat benchmark_quotes.rb
# As of Ruby 1.9 Benchmark must be required
require 'benchmark'
n = 1000000
Benchmark.bm(15) do |x|
x.report("assign single") { n.times do; c = 'a string'; end}
x.report("assign double") { n.times do; c = "a string"; end}
x.report("concat single") { n.times do; 'a string ' + 'b string'; end}
x.report("concat double") { n.times do; "a string " + "b string"; end}
end
$ ruby benchmark_quotes.rb
user system total real
assign single 0.110000 0.000000 0.110000 ( 0.116867)
assign double 0.120000 0.000000 0.120000 ( 0.116761)
concat single 0.280000 0.000000 0.280000 ( 0.276964)
concat double 0.270000 0.000000 0.270000 ( 0.278146)
注:新しいRubyのバージョンで動作するように更新し、ヘッダーをきれいにし、より高速なシステムでベンチマークを実行するようにしました。
この回答はいくつかの重要な点を欠いています。特に、次のような他の回答を参照してください。 補間 とその理由 性能に大きな差はない という理由です。
関連
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 一重引用符で囲まれた文字列の一重引用符をエスケープするには
-
[解決済み] PHPの文字列で、シングルクオートとダブルクオートの違いは何ですか?
-
[解決済み] Bashでは、一重の角括弧[ ]よりも二重の角括弧[[ ]]が好ましいのでしょうか?
-
[解決済み] Bashのシングルクォートとダブルクォートの違い
-
[解決済み] 二重括弧、片括弧、中括弧の使い方
-
[解決済み] Javaでinstanceofを使用することによるパフォーマンスへの影響
-
[解決済み】シングルクォートとダブルクォート('と"")について)
-
[解決済み】二重引用符と単一引用符
-
[解決済み] Rubyの理想的なプロジェクト構造
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】二重引用符と単一引用符
-
[解決済み] なぜsumはinject(:+)よりもずっと速いのですか?
-
[解決済み] Rubyの理想的なプロジェクト構造
-
[解決済み] 現在の日時をDD/MM/YYYY HH:MM形式で取得するにはどうすればよいですか?
-
[解決済み] Gemfileでrubygemを指定するときの~>と>=の違いは何ですか?
-
[解決済み] Ruby: 文字列の最初の文字を取得する方法
-
[解決済み] Rubyでjavaのインターフェースに相当するものは何ですか?
-
[解決済み] ルビー 負の数を正の数に変換する?
-
[解決済み] rubyのinjectはreduceと同じ意味ですか?
-
[解決済み] Ruby: selfを拡張する