- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
=0;--6ren">
我有一个这样的 for 循环:
String myString = "123456789";
String prefix = null;
for (int i=6;i>=0;--i)
{
prefix = myString.substring(0,i);
process(prefix);
}
问题是,如果这段代码被执行N次,将会创建N*7个字符串(每次执行都会创建7个字符串——因为substring方法创建了一个新的String并且这个方法被调用了7次每次执行)。我正在考虑如何在这种情况下提高性能。我想知道是否有一种方法每次执行只使用一个字符串,每次都修改它。这就是 StringBuilder 的目的,但我认为 StringBuilder 在这种情况下没有帮助:
String myString = "123456789";
StringBuilder prefix = new StringBuilder(myString);
for (int i=6;i>=0;--i)
{
prefix.delete(i,prefix.length());
process(prefix.toString());
}
在这种情况下,prefix 总是引用同一个 StringBuilder 对象,但同样的问题出现在另一个地方,因为 prefix.toString() 总是返回一个新的 String 对象。
有什么想法吗?
(我知道这个话题已经被处理过很多次了。但是我已经做了一些搜索,但我没有找到解决方案,也许这是内存的最小使用?)
谢谢你的帮助
最佳答案
虽然 myString.substring(0, i)
确实创建了一个新的 String
对象,但请注意,这不会复制底层字符数据。
在对这段代码做任何事情之前,我会使用分析器来验证这确实是一个瓶颈(无论是在 CPU 使用方面,还是在垃圾收集器的压力方面)。
关于java - 弦乐与表演,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822285/
我对如何从 dask 中获得最佳效果感到困惑。 问题 我有一个包含多个时间序列的数据帧(每个都有自己的 key ),我需要运行一个函数 my_fun在他们每个人上。用 Pandas 解决它的一种方法包
在我的 symfony 应用程序中,我使用选民来检查用户是否可以访问某些功能。 现在,我有一个导航栏,其中的菜单根据这些权限显示或隐藏。 这个导航栏单独渲染大约需要 2 秒。每个页面都添加了很多内容。
我正在尝试实现 2D 版本的行进立方体算法(行进方 block ?),我遇到的主要障碍之一是性能问题(使用 WebGL 和 Three.js)。我注意到质量(体素/方形大小)和性能之间存在巨大的权衡,
我目前正在接近 Elm,我需要创建一个包含一些可折叠数据的页面。 由于我目前正在使用 Bootstrap,因此 Accordion 组件似乎是最好的组件。 这是我的相关虚拟代码: view : Mod
我是一名优秀的程序员,十分优秀!