Tag: 性能

为什么嵌套权重对性能不利? 备择scheme?

我已经写了几个布局文件,我使用layout_weight属性来创build不同视图之间的比例。 在某些时候,我开始得到有关嵌套权重的皮棉警告。 所以,我想知道为什么嵌套的权重对性能不利,如果有一种更有效的方法来创build可以用于不同屏幕尺寸的视图尺寸之间的恒定比例,并且不需要指定很多尺寸dpi值通过几个布局文件(针对不同的屏幕尺寸,我的意思是)。 谢谢!

为什么string连接比数组连接更快?

今天,我读了关于string连接速度的这个线程 。 令人惊讶的是,string连接是胜利者: http://jsben.ch/#/OJ3vo 结果和我想的相反。 另外,关于这个的文章有很多, 这个或者这个相反地​​解释。 我可以猜测,浏览器已经优化了string在最新版本,但他们如何做到这一点? 我们可以说,串联string时使用+更好吗?

在Java中使用instanceof的性能影响

我正在开发一个应用程序,一个devise方法涉及到对instanceof操作符的大量使用。 虽然我知道面向对象devise通常试图避免使用instanceof ,但这是一个不同的故事,这个问题纯粹与性能有关。 我想知道是否有任何性能影响? 和==一样快吗? 例如,我有一个有10个子类的基类。 在接受基类的单个函数中,我会检查类是否是子类的一个实例,并执行一些例程。 我想解决这个问题的其他方法之一就是使用“typesid”整数基元,并使用一个位掩码来表示子类的类别,然后仅对子类“type id”进行位掩码比较表示类别的常量掩码。 是由JVM优化的JVM比这更快吗? 我想坚持到Java,但应用程序的性能是至关重要的。 如果以前走过这条路的人可以提供一些build议,那将是很酷的。 我是挑剔太多还是专注于错误的事情来优化?

用C ++编写一个二进制文件非常快

我正在尝试将大量数据写入我的SSD(固态驱动器)。 而巨额我的意思是80GB。 我浏览网页的解决scheme,但最好的我想出了这样的: #include <fstream> const unsigned long long size = 64ULL*1024ULL*1024ULL; unsigned long long a[size]; int main() { std::fstream myfile; myfile = std::fstream("file.binary", std::ios::out | std::ios::binary); //Here would be some error handling for(int i = 0; i < 32; ++i){ //Some calculations to fill a[] myfile.write((char*)&a,size*sizeof(unsigned long long)); } myfile.close(); } 使用Visual Studio 2010进行编译并进行完全优化,并在Windows7下运行,此程序最高可达20MB […]

如何在大空间尺度上加速A *algorithm?

从http://ccl.northwestern.edu/netlogo/models/community/Astardemo ,我使用networking中的节点编码A *algorithm来定义成本最低的path。 该代码似乎工作,但它是太慢,当我在大的空间尺度使用它。我的景观有1000个补丁×1000个补丁的程度,1个补丁= 1个像素。 即使我减less400个修补程序×400个修补程序,1个修补程序= 1个像素,但它仍然太慢(我不能修改我的风景低于400个修补程序×400个修补程序)。 这里是代码: to find-path [ source-node destination-node] let search-done? false let search-path [] let current-node 0 set list-open [] set list-closed [] let list-links-with-nodes-in-list-closed [] let list-links [] set list-open lput source-node list-open while [ search-done? != true] [ ifelse length list-open != 0 [ set list-open sort-by [[f] […]

什么是configurationJavaScript执行的最佳方式?

有一个很好的分析器的JavaScript? 我知道萤火虫有一些支持分析代码。 但是我想确定更长的统计数据。 想象一下,您正在构build大量的JavaScript代码,并且要确定代码中实际存在的瓶颈。 起初我想查看每个javascript函数和执行时间的configuration文件统计信息。 接下来将包括DOMfunction。 这与渲染树上的操作变慢的操作相结合将是完美的。 我认为如果性能在我的代码,DOM准备或渲染树/视觉更新中被杀死,这会给人一个好的印象。 有什么我想要的东西吗? 或者什么是实现我所描述的最好的最好的工具? 它会自动编译的浏览器加上由引擎function增强的JavaScript引擎?

在PHP中FOR vs FOREACH的性能

首先,我了解90%的应用程序性能差异是完全不相关的,但我只需要知道哪个是更快的构造。 那和… 网上目前提供的信息令人困惑。 很多人都说foreach是不好的,但是从技术上来说,它应该更快,因为它假设使用迭代器来简化编写数组遍历。 迭代器,再次假设是更快,但在PHP中,也显然死缓(或者这不是一个PHP的东西?)。 我正在谈论数组函数:next()prev()reset()等等,如果它们是函数,而不是那些看起来像函数的PHP语言特性之一。 为了缩小这一点 :我没有兴趣遍历数组的任何超过1的步骤(也没有消极的步骤,即反向迭代)。 我也没有兴趣遍历任意点,只是0到长度。 我也没有看到有定期发生超过1000个键的数组操作,但我确实看到一个数组在应用程序的逻辑中被遍历多次! 对于操作来说,主要只是string操作和回显。 这里有几个参考网站: http://www.phpbench.com/ http://www.php.lt/benchmark/phpbench.php 我到处听到的是: foreach是缓慢的,因此/更快 PHP foreach复制它迭代的数组; 为了使它更快,你需要使用引用 代码如下: $key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; $i++) $key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; $i++) $key = array_keys($aHash); $size = sizeOf($key); for ($i=0; $i < $size; […]

C ++性能挑战:整数转换为std :: string

任何人都可以打败我的整数的性能std ::string代码,下面链接? 已经有几个问题解释了如何在C ++中将整数转换为std::string ,比如这个 ,但是没有一个提供的解决scheme是有效的。 下面是一些编译就绪的代码,用于与一些常见的方法进行竞争: 使用stringstream的“C ++方法”: http : //ideone.com/jh3Sa sprintf,这是SO-ers通常推荐的性能意识: http : //ideone.com/82kwR 与stream行的观点相反, boost::lexical_cast有它自己的实现( 白皮书 ),不使用stringstream和numeric插入操作符。 我真的很希望看到它的performance比较,因为这个问题表明它是悲惨的 。 和我自己的贡献一样,这在台式计算机上是有竞争力的,并且演示了一种在embedded式系统上也可以全速运行的方法,与依赖于整数模的algorithm不同: 本的algorithm: http : //ideone.com/SsEUW 如果你想使用这个代码,我会在一个简单的BSD许可下使用它(允许商业使用,需要归属)。 请问。 最后,函数ltoa是非标准的,但广泛可用。 ltoa版本,对于任何有编译器的人来说(ideone没有): http ://ideone.com/T5Wim 我会尽快发表我的performance测量作为答案。 algorithm规则 提供将至less32位有符号和无符号整数转换为十进制的代码。 将输出生成为std::string 。 没有与线程和信号不兼容的技巧(例如,静态缓冲区)。 您可以假设一个ASCII字符集。 确保在绝对值无法表示的二进制补码机上testingINT_MIN上的代码。 理想情况下,输出应该是character-for-character与使用stringstream的规范C ++版本相同的,但是也可以通过http://ideone.com/jh3Sa来理解,因为正确的数字也是可以理解的。 新 :虽然你可以使用任何编译器和优化器的选项(除了完全禁用),你需要进行比较,至less在VC ++ 2010和g ++下,代码也需要编译并给出正确的结果。 希望讨论 除了更好的algorithm之外,我还想在几个不同的平台和编译器上获得一些基准(让我们使用MB / s吞吐量作为我们的标准测量单位)。 我相信我的algorithm的代码(我知道sprintf基准testing使用了一些快捷方式 – 现在已经修复了)是标准定义好的行为,至less在ASCII假设下是这样,但是如果您看到任何未定义的行为或input输出无效,请指出。 […]

为什么C ++编译需要这么长时间?

与C#和Java相比,编译C ++文件需要很长时间。 编译C ++文件比运行普通大小的Python脚本花费的时间要长得多。 我目前正在使用VC ++,但任何编译器都是一样的。 为什么是这样? 我能想到的两个原因是加载头文件和运行预处理程序,但似乎不应该解释为什么需要这么长时间。

用JDBC做批量INSERTS的有效方法

在我的应用程序中,我需要做很多插入。 它是一个Java应用程序,我使用普通的JDBC执行查询。 DB是Oracle。 我已经启用批处理,所以它节省了我的networking延迟执行查询。 但是查询作为单独的INSERT被串行执行: insert into some_table (col1, col2) values (val1, val2) insert into some_table (col1, col2) values (val3, val4) insert into some_table (col1, col2) values (val5, val6) 我想知道下面的INSERTforms是否更有效率: insert into some_table (col1, col2) values (val1, val2), (val3, val4), (val5, val6) 即折叠多个INSERT到一个。 任何其他技巧,使批量插入更快?