Questions tagged «performance»

对于与代码的度量或改进以及应用程序效率有关的问题。

3
Map的keySet()和entrySet()的性能注意事项
所有, 谁能让我确切知道两者之间的性能问题?站点:CodeRanch简要概述了使用keySet()和get()时需要的内部调用。但是如果使用keySet()和get()方法时任何人都可以提供有关流的确切详细信息,那将是很好的。这将帮助我更好地了解性能问题。

5
矩阵乘法:矩阵大小差异小,时序差异大
我有一个矩阵乘法代码,如下所示: for(i = 0; i < dimension; i++) for(j = 0; j < dimension; j++) for(k = 0; k < dimension; k++) C[dimension*i+j] += A[dimension*i+k] * B[dimension*k+j]; 在此,矩阵的大小由表示dimension。现在,如果矩阵的大小为2000,则运行此代码需要147秒,而如果矩阵的大小为2048,则需要447秒。所以虽然没有区别。的乘积为(2048 * 2048 * 2048)/(2000 * 2000 * 2000)= 1.073,时间差为447/147 =3。有人可以解释为什么会这样吗?我希望它可以线性扩展,但不会发生。我不是在尝试制作最快的矩阵乘法代码,只是在试图理解为什么会这样。 规格:AMD Opteron双核节点(2.2GHz),2G RAM,gcc v 4.5.0 程序编译为 gcc -O3 simple.c 我也在英特尔的icc编译器上运行了此命令,并且看到了类似的结果。 编辑: 正如评论/答案中所建议的那样,我运行的维度为2060的代码需要145秒。 …

5
为什么这个C ++程序如此之快?
我写了一个基准测试来比较Python,Ruby,JavaScript和C ++的不同解释器/编译器的性能。不出所料,事实证明(优化的)C ++胜过脚本语言,但是这样做的原因令人难以置信。 结果是: sven@jet:~/tmp/js$ time node bla.js # * JavaScript with node * 0 real 0m1.222s user 0m1.190s sys 0m0.015s sven@jet:~/tmp/js$ time ruby foo.rb # * Ruby * 0 real 0m52.428s user 0m52.395s sys 0m0.028s sven@jet:~/tmp/js$ time python blub.py # * Python with CPython * 0 real 1m16.480s user …

14
Java非常大的堆大小
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 是否有人在Java中使用12 GB或更高的超大堆有经验? GC是否会使程序无法使用? 您使用什么GC参数? 哪种JVM,Sun或BEA更适合于此? 在这种情况下,哪种平台(Linux或Windows)性能更好? 在Windows的情况下,如此高的内存负载下64位Vista和XP之间会有性能差异吗?

6
什么是最快(访问)Python中类似结构的对象?
我正在优化一些代码,这些代码的主要瓶颈正在运行并访问大量类似于结构的对象。目前,我使用namedtuples来提高可读性。但是使用'timeit'进行的一些快速基准测试表明,在性能是一个重要因素的情况下,这确实是错误的方法: 以a,b,c命名的元组: >>> timeit("z = a.c", "from __main__ import a") 0.38655471766332994 使用__slots__,a,b,c的类: >>> timeit("z = b.c", "from __main__ import b") 0.14527461047146062 带有键a,b,c的字典: >>> timeit("z = c['c']", "from __main__ import c") 0.11588272541098377 使用常量键的具有三个值的元组: >>> timeit("z = d[2]", "from __main__ import d") 0.11106188992948773 使用常量键列出三个值: >>> timeit("z = e[2]", "from __main__ import e") …

2
为什么Java 7中的StringBuilder#append(int)比Java 8中的快?
在调查使用以及将整数原语转换为字符串的辩论时"" + n,Integer.toString(int)我写了这个JMH微基准测试: @Fork(1) @OutputTimeUnit(TimeUnit.MILLISECONDS) @State(Scope.Benchmark) public class IntStr { protected int counter; @GenerateMicroBenchmark public String integerToString() { return Integer.toString(this.counter++); } @GenerateMicroBenchmark public String stringBuilder0() { return new StringBuilder().append(this.counter++).toString(); } @GenerateMicroBenchmark public String stringBuilder1() { return new StringBuilder().append("").append(this.counter++).toString(); } @GenerateMicroBenchmark public String stringBuilder2() { return new StringBuilder().append("").append(Integer.toString(this.counter++)).toString(); } @GenerateMicroBenchmark public …

4
冒泡排序中的> vs.> =会导致明显的性能差异
我偶然发现了一些东西。起初,我认为可能是这种情况下分支错误预测的情况,但是我无法解释为什么分支错误预测会导致这种行为。 我用Java实现了两个版本的Bubble Sort,并进行了一些性能测试: import java.util.Random; public class BubbleSortAnnomaly { public static void main(String... args) { final int ARRAY_SIZE = Integer.parseInt(args[0]); final int LIMIT = Integer.parseInt(args[1]); final int RUNS = Integer.parseInt(args[2]); int[] a = new int[ARRAY_SIZE]; int[] b = new int[ARRAY_SIZE]; Random r = new Random(); for (int run = 0; …


7
哪个更有效:返回值与通过引用传递?
我目前正在研究如何编写有效的C ++代码,并且在函数调用方面,我想到了一个问题。比较此伪代码功能: not-void function-name () { do-something return value; } int main () { ... arg = function-name(); ... } 使用以下否则相同的伪代码函数: void function-name (not-void& arg) { do-something arg = value; } int main () { ... function-name(arg); ... } 哪个版本更有效,在哪个方面(时间,内存等)更有效?如果取决于,那么什么时候第一个会更有效率,什么时候第二个会更有效率? 编辑:就上下文而言,此问题仅限于与硬件平台无关的差异,并且大多数情况下也限于软件。是否存在与机器无关的性能差异? 编辑:我看不到这是重复的。另一个问题是比较按引用传递(上一个代码)与按值传递(下一个): not-void function-name (not-void arg) 这和我的问题不同。我的重点不是哪个是将参数传递给函数的更好方法。我关注的是这是更好的方式来传递出一个结果来自外部范围的变量。

3
使用无限滚动或许多dom元素进行演奏?
我对大量的dom elmenets和性能有疑问。 假设我在一个页面上有6000个dom元素,并且随着用户与该页面进行交互(用户滚动创建一个新的dom元素)(例如twitter),可以增加元素的数量。 为了提高页面的性能,我只能想到两件事。 将不显示的项目设置为“无”,以避免回流 从dom中删除不可见的项目,然后根据需要重新添加。 他们是否还有其他方法可以改善包含许多dom元素的页面?

3
React导航与React Native导航[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 去年关闭。 改善这个问题 我只想了解关于这两个方面的诚实,经验丰富和令人反感的观点,以便在React Native中实现导航: 反应导航 反应本机导航 哪个更好?为什么。谢谢

8
为什么在RecyclerView.Adapter的onBindViewHolder中添加OnClickListener被认为是不好的做法?
我有一个RecyclerView.Adapter类的以下代码,它工作正常: public class MyAdapter extends RecyclerView.Adapter<MyAdapter.Viewholder> { private List<Information> items; private int itemLayout; public MyAdapter(List<Information> items, int itemLayout){ this.items = items; this.itemLayout = itemLayout; } @Override public Viewholder onCreateViewHolder(ViewGroup parent, int viewType) { View v = LayoutInflater.from(parent.getContext()).inflate(itemLayout, parent, false); return new Viewholder(v); } @Override public void onBindViewHolder(Viewholder holder, final int …


5
什么时候在C#/。NET中使用指针?
我知道C#使程序员能够在不安全的上下文中访问和使用指针。但是什么时候需要? 在什么情况下使用指针变得不可避免? 是否仅出于性能原因? 同样,为什么C#通过不安全的上下文公开此功能,并从中删除所有托管的优势?从理论上讲,可以使用指针而不损失托管环境的任何优势吗?

2
PostgreSQL临时表
我需要执行250万次查询。该查询生成我需要的一些行,AVG(column)然后使用它AVG从低于平均值的所有值中过滤表。然后,我需要将INSERT这些过滤后的结果放入表格中。 做到这一点的唯一有效方法似乎是通过TEMPORARY TABLE为每个query-postmaster python-thread创建一个。我只是希望这些TEMPORARY TABLEs不会持久保存在硬盘驱动器上,并且会保留在内存(RAM)中,除非它们的内存不足。 我想知道是否TEMPORARY TABLE会引起磁盘写操作(这会干扰INSERTS,即使整个过程变慢)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.