Questions tagged «performance»

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

7
从Java字符串中剥离所有不可打印字符的最快方法
String用Java剥离所有不可打印字符的最快方法是什么? 到目前为止,我已经尝试并测量了138字节,131个字符的字符串: 字符串的replaceAll()-最慢的方法 517009个结果/秒 预编译模式,然后使用Matcher的 replaceAll() 637836个结果/秒 使用StringBuffer,使用codepointAt()一对一获取代码点并追加到StringBuffer 711946结果/秒 使用StringBuffer,使用charAt()一对一获取字符并追加到StringBuffer 1052964结果/秒 预分配char[]缓冲区,使用charAt()一对一获取字符并填充该缓冲区,然后转换回String 2022653个结果/秒 预分配2个char[]缓冲区-旧的和新的,使用一次获取现有String的所有字符,一次又一次getChars()遍历旧缓冲区并填充新缓冲区,然后将新缓冲区转换为String-我自己最快的版本 2502502结果/秒 具有2个缓冲区的相同内容-仅使用byte[],getBytes()并将编码指定为“ utf-8” 857485结果/秒 具有2个byte[]缓冲区的相同内容,但将编码指定为常量Charset.forName("utf-8") 791076个结果/秒 具有2个byte[]缓冲区的相同内容,但是将编码指定为1字节本地编码(几乎没有理智的事情) 370164结果/秒 我的最佳尝试是: char[] oldChars = new char[s.length()]; s.getChars(0, s.length(), oldChars, 0); char[] newChars = new char[s.length()]; int newLen = 0; for (int j = 0; j < s.length(); j++) …

4
“性能统计”结果中的停滞周期前端和停滞周期后端是什么?
有人知道perf stat结果中的stalled -cycles-frontend和stalled-cycles-backend是什么意思吗?我在互联网上搜索,但没有找到答案。谢谢 $ sudo perf stat ls Performance counter stats for 'ls': 0.602144 task-clock # 0.762 CPUs utilized 0 context-switches # 0.000 K/sec 0 CPU-migrations # 0.000 K/sec 236 page-faults # 0.392 M/sec 768956 cycles # 1.277 GHz 962999 stalled-cycles-frontend # 125.23% frontend cycles idle 634360 stalled-cycles-backend # 82.50% …

1
如何加快左右箭头键来编辑文本?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 是我自己,还是其他人发现MacOS上的向左和向右箭头键编辑文本的速度异常慢? 与我的Windows计算机相比,在Mac上用左右箭头键定位光标的时间似乎是原来的两倍。向上/向下箭头似乎足够快,但是向左/向右箭头只是爬行。我在终端机中注意到最多,可以编辑最近使用的命令,现在在浏览器形式的文本中注意到它。 是否可以设置Mac首选项以加快对这些键的响应?

12
java方法调用有多昂贵
我是一个初学者,我一直读到重复代码很不好。但是,似乎要避免这样做,通常必须进行额外的方法调用。假设我有以下课程 public class BinarySearchTree<E extends Comparable<E>>{ private BinaryTree<E> root; private final BinaryTree<E> EMPTY = new BinaryTree<E>(); private int count; private Comparator<E> ordering; public BinarySearchTree(Comparator<E> order){ ordering = order; clear(); } public void clear(){ root = EMPTY; count = 0; } } 对于我来说,将我的clear()方法中的两行复制并粘贴到构造函数中而不是调用实际方法会更好吗?如果是这样,有什么不同?如果我的构造函数仅通过将实例变量设置为一个值就进行了10次方法调用,该怎么办?什么是最佳编程实践?

12
Python-如何检查列表的单调性
什么是检查列表单调性的有效且Python方式?即它具有单调增加或减少的值? 例子: [0, 1, 2, 3, 3, 4] # This is a monotonically increasing list [4.3, 4.2, 4.2, -2] # This is a monotonically decreasing list [2, 3, 1] # This is neither

4
C比C ++快得多[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 据我了解,所有脚本语言和核心科学程序通常都是用C编写的;这使实现变得凌乱而又直截了当。 我知道这些人想最大限度地发挥他们的性能,但是使用C字符串和C结构与使用C ++类之间确实存在区别。C ++似乎以相同的方式工作,除了虚函数外,它还存储一个类函数一次,并且该类的每个实例都调用该函数。 是什么使C更快,并且在必须是最快的项目(例如python或sqlite)中有显着区别吗?
81 c++  c  performance 

3
Pandas的性能适用于vs.np.vectorize从现有列创建新列
我正在使用Pandas数据框,并希望根据现有列创建一个新列。对于df.apply()和之间的速度差异,我还没有很好的讨论np.vectorize(),所以我想在这里问一下。 熊猫apply()功能很慢。根据我的测量(在一些实验中显示如下),至少在我的2016 MacBook Pro上,使用np.vectorize()它比使用DataFrame函数快25倍(或更多)apply()。这是预期的结果吗?为什么? 例如,假设我具有带N行的以下数据框: N = 10 A_list = np.random.randint(1, 100, N) B_list = np.random.randint(1, 100, N) df = pd.DataFrame({'A': A_list, 'B': B_list}) df.head() # A B # 0 78 50 # 1 23 91 # 2 55 62 # 3 82 64 # 4 99 80 进一步假设我想根据这两列A和创建一个新列B。在下面的示例中,我将使用一个简单的函数divide()。要应用此功能,我可以使用df.apply()或np.vectorize(): def …

6
优化基于Kohana的网站以提高速度和可扩展性
我与Kohana一起建立的网站昨天遭到了巨大的点击量,这使我退后一步并评估了一些设计。我很好奇什么是优化基于Kohana的应用程序的一些标准技术? 我也对基准测试感兴趣。是否需要设置Benchmark::start()和设置Benchmark::stop()每个控制器方法才能查看所有页面的执行时间,还是能够在全球范围内快速应用基准测试? 我将在更多时间使用Cache库,但是我愿意接受更多建议,因为我敢肯定,目前我还不知道有很多事情可以做。

6
C语言中最好的计时方法?
对具有高分辨率和可移植性的代码段进行计时的最佳方法是什么? /* Time from here */ ProcessIntenseFunction(); /* to here. */ printf("Time taken %d seconds %d milliseconds", sec, msec); 是否有一个具有跨平台解决方案的标准库?
80 c  performance  timer  timing 

3
为什么处理排序数组比未排序数组慢?(Java的ArrayList.indexOf)
标题参考“为什么处理排序数组比未排序数组快? 这也是分支预测的效果吗?当心:这里排序数组的处理速度较慢! 考虑以下代码: private static final int LIST_LENGTH = 1000 * 1000; private static final long SLOW_ITERATION_MILLIS = 1000L * 10L; @Test public void testBinarySearch() { Random r = new Random(0); List<Double> list = new ArrayList<>(LIST_LENGTH); for (int i = 0; i < LIST_LENGTH; i++) { list.add(r.nextDouble()); } //Collections.sort(list); // …

1
Python:为什么*和**比/和sqrt()快?
在优化代码时,我意识到了以下几点: >>> from timeit import Timer as T >>> T(lambda : 1234567890 / 4.0).repeat() [0.22256922721862793, 0.20560789108276367, 0.20530295372009277] >>> from __future__ import division >>> T(lambda : 1234567890 / 4).repeat() [0.14969301223754883, 0.14155197143554688, 0.14141488075256348] >>> T(lambda : 1234567890 * 0.25).repeat() [0.13619112968444824, 0.1281130313873291, 0.12830305099487305] 并且: >>> from math import sqrt >>> T(lambda : sqrt(1234567890)).repeat() …


5
创建1000个实体框架对象时应何时调用SaveChanges()?(例如在导入过程中)
我正在运行一个导入,每次运行都会有1000条记录。只是根据我的假设寻找一些确认: 以下哪一项最有意义: 运行SaveChanges()每个AddToClassName()电话。 SaveChanges()每n个AddToClassName()电话运行一次。 运行SaveChanges()后,所有的的AddToClassName()电话。 第一种选择可能很慢吧?由于它将需要分析内存中的EF对象,生成SQL等。 我认为第二种选择是两全其美的,因为我们可以在该SaveChanges()调用周围包含try catch ,并且如果其中一个失败,一次仅丢失n条记录。也许将每个批次存储在List <>中。如果SaveChanges()呼叫成功,请删除列表。如果失败,则记录项目。 最后一个选项可能最终也会非常慢,因为每个单个EF对象都必须在内存中直到SaveChanges()被调用。如果保存失败,什么也不会提交,对吗?

10
Laravel真的这么慢吗?
我刚刚开始使用Laravel。我几乎没有编写任何代码,但是我的页面要花近一秒钟的时间加载! 当我的无框架应用程序和NodeJS应用程序花费约2毫秒时,这让我有些震惊。Laravel在做什么?这不是正常行为吗?需要微调吗?

1
使用分组依据与不同时的巨大性能差异
我正在HSQLDB包含500 000项的表的服务器上执行一些测试。该表没有索引。有5000个不同的业务密钥。我需要他们的清单。自然地,我从DISTINCT查询开始: SELECT DISTINCT business_key FROM memory WHERE concept <> 'case' or attrib <> 'status' or value <> 'closed' 大约需要90秒!!! 然后我尝试使用GROUP BY: SELECT business_key FROM memory WHERE concept <> 'case' or attrib <> 'status' or value <> 'closed' GROUP BY business_key 它需要1秒钟!!! 试图找出我运行的差异,EXLAIN PLAN FOR但似乎为两个查询提供了相同的信息。 EXLAIN PLAN FOR DISTINCT ... …

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.