質問するログイン新規登録

回答編集履歴

1

追記に対して

2021/03/30 05:42

投稿

thkana
thkana

スコア7764

answer CHANGED
@@ -2,4 +2,15 @@
2
2
  リテラルで占められる8バイトが、あなたのいう大規模なアプリでどれだけ重要でしょう? それを考えて判断してください。
3
3
 
4
4
  別の面で言えば、文字'列'リテラルを使わなっかたらそのコードをどう書くのですか? 返すデータが"abcdefg"だという情報はどこかになければいけないのですよ?
5
- 削ろうとして削れるものですか?
5
+ 削ろうとして削れるものですか?
6
+
7
+ ---
8
+ 追記に対して
9
+ つまり、例えばリソースファイルというか定数を保持したデータファイルを作って、随時そこからデータを読み込んで動的寿命を持った変数に読み込ませればメモリについては「節約」できる、ということでしょうか。
10
+ それはまぁその通りです。あと、その構成のほうが多言語対応もやりやすくなる、なんてことはありますね。
11
+
12
+ で、あなたがいう「大規模なアプリ」で、文字列リテラルを削ることによってどれだけの節約ができるのか、その節約をしなきゃいけないのか、その手間は効果に見合うのか。その辺はどうでしょう。
13
+ 例えば、"abcdefg"に相当する文字列リテラルが1億個ぐらいあるのなら、それが占める容量はざっくり800MBにもなりますから、確かにメモリに常駐させるよりはディスク上に追い出す対策をしたくなりそうです。
14
+ 1000個であれば、8KBって...「大規模アプリ」にとって蚊が刺すほどの影響もないでしょう。
15
+
16
+ どのくらいの数を想定しているのですか?「大規模」とか「散りばめた」とかで漠然と考えていないで、具体的な(せめて桁数ぐらいは)数字を当てはめて考えてみてください。