循环中哪个更好 - context.getString() 还是变量?

发布于 2024-12-17 20:02:53 字数 667 浏览 1 评论 0原文

我使用资源文件中定义的一些字符串。在资源利用率和性能方面哪个更好? 每个循环调用 context.getString(stringId) 或将 context.getString(stringId) 存储在循环外部的变量中,并在循环内使用该变量。

一些伪代码...

没有变量:

while (condition) {
   DoSomethingWithString(context.getString(stringId));
}

使用变量:

String variable = context.getString(stringId);
while (condition) {
   DoSomethingWithString(variable);
}

更多想法...变量的东西看起来是更好的解决方案,因为不需要每次都从资源文件中获取数据。但你必须再使用一个变量。好的,在本例中它只是一个变量,但它也只是一个伪示例,因此它可能会增加一些资源使用量。除此之外,在使用该字符串之前,resourcestring 必须复制到另一个字符串(性能?)。 当字节码编译器做了很好的优化工作时,在循环中使用 context.getString(stringId) 可能是更好的解决方案。

I use some strings which are defined in a resource file. What is better in terms of resource usage and performance?
Call context.getString(stringId) every single loop or store the context.getString(stringId) in a variable outside of the loop and use this variable within the loop.

Some pseudocode ...

Without a variable:

while (condition) {
   DoSomethingWithString(context.getString(stringId));
}

With a variable:

String variable = context.getString(stringId);
while (condition) {
   DoSomethingWithString(variable);
}

Some more thoughts ... the variable stuff looks like to be the better solution because there is no need to fetch the data from the resource file every time. But you have to use one more variable. OK, it's just one variable in this case but it's also only a pseudo example so it could maybe add some resource usage. Beside this the resourcestring have to copied to another string before this string is used (performance?).
The usage of context.getString(stringId) within a loop could be the better solution when the bytecode compiler does a good optimizing job.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

允世 2024-12-24 20:02:53

(根据我对您问题的理解)我建议您将 context.getString(stringId) 存储在循环外部的变量中,并在循环内使用此变量。

因为,在此,在 for循环你的程序执行器不需要每次都从字符串文件中获取数据。它只是引用单个变量。

例如:

String result = context.getString(id);

for(int i=o;i<some.size();i++)
{
 Log.d(TAG, result);
}

(As per my understanding of your question) I advise you to store the context.getString(stringId) in a variable outside of the loop and use this variable within the loop.

Because, In this, in for loop your program executer doesn't need to go every time to fetch data from String file. It just refer the single variable.

For example:

String result = context.getString(id);

for(int i=o;i<some.size();i++)
{
 Log.d(TAG, result);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文