Questions tagged «performance»

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

9
性能问题:Java与C ++
我一直都听说C ++比Java更高效(这就是为什么大多数游戏都是用C ++开发的原因)。 我写了一个小的算法,使用完全相同的算法来解决Java和C ++中的“八皇后难题”,然后开始增加数字或平方。当到达20 * 20甚至22 * 22的棋盘时,似乎Java更为有效(3秒对C ++为66秒)。 我不知道为什么,但是我是从C ++开始的,所以我很可能会犯一些巨大的性能错误,所以我很乐意接受任何可以帮助我了解发生了什么的信息。 以下是我在Java中使用的代码: import java.awt.Point; import java.util.ArrayList; import java.util.List; public class HuitDames { /** * La liste des coordnnées des dames. */ private static List<Point> positions = new ArrayList<>(); /** * Largeur de la grille. */ private static final int …

8
HTML中的<script>标记位置是否会影响网页的性能?
如果脚本标签在HTML页面中的正文上方或下方,那么这对网站的性能有影响吗? 以及如果在这样之间使用: &lt;body&gt; ..blah..blah.. &lt;script language="JavaScript" src="JS_File_100_KiloBytes"&gt; function f1() { .. some logic reqd. for manipulating contents in a webpage } &lt;/script&gt; ... some text here too ... &lt;/body&gt; 还是更好? &lt;script language="JavaScript" src="JS_File_100_KiloBytes"&gt; function f1() { .. some logic reqd. for manipulating contents in a webpage } &lt;/script&gt; &lt;body&gt; ..blah..blah.. …

6
使用Dapper进行批量插入所花费的时间比预期的长
阅读本文后,我决定仔细研究一下我使用Dapper的方式。 我在空数据库上运行了此代码 var members = new List&lt;Member&gt;(); for (int i = 0; i &lt; 50000; i++) { members.Add(new Member() { Username = i.toString(), IsActive = true }); } using (var scope = new TransactionScope()) { connection.Execute(@" insert Member(Username, IsActive) values(@Username, @IsActive)", members); scope.Complete(); } 花了大约20秒。那是每秒2500次插入。不错,但考虑到博客速度达到每秒45,000次插入,效果也不佳。Dapper中有更有效的方法吗? 另外,请注意,通过Visual Studio调试器运行此代码需要3分钟以上!我认为调试器会使它放慢一点,但是看到这么多,我真的很惊讶。 更新 所以这 using …


3
MongoDB远程分页
据说在具有许多记录的MongoDB集合中使用skip()进行分页很慢,因此不建议使用。 可以使用远程分页(基于&gt; _id比较) db.items.find({_id: {$gt: ObjectId('4f4a3ba2751e88780b000000')}}); 显示上一个很有用。&next按钮-但是要显示实际的页码1 ... 5 6 7 ... 124时,实现起来并不容易-您需要预先计算每个页面从哪个“ _id”开始。 所以我有两个问题: 1)我什么时候应该开始担心呢?当“太多记录”中skip()的运行速度明显变慢时?一千?1000000? 2)使用远程分页时,显示带有实际页码的链接的最佳方法是什么?

2
启用优化后,为什么此代码慢6.5倍?
我想基准glibc的strlen功能,出于某种原因,发现它显然执行多慢与GCC启用优化,我不知道为什么。 这是我的代码: #include &lt;time.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; int main() { char *s = calloc(1 &lt;&lt; 20, 1); memset(s, 65, 1000000); clock_t start = clock(); for (int i = 0; i &lt; 128; ++i) { s[strlen(s)] = 'A'; } clock_t end = clock(); printf("%lld\n", (long long)(end - start)); …
68 c  performance  gcc  glibc 

8
如果我将Objective-C用于低级代码,我的iPhone应用程序是否会对性能产生影响?
在iPhone或其他便携式硬件上对CPU密集型或GPU密集型应用程序进行编程时,必须做出明智的算法决策,以加快代码速度。 但是,如果您使用的语言比另一种语言的性能差,那么即使算法选择很好,也可能会很慢。 是否有任何硬数据将Objective-C与C ++进行比较,尤其是在iPhone上,但可能仅在Mac桌面上,以比较各种类似语言的性能?我对比较C和Objective-C的这篇文章非常熟悉,但这是将两种面向对象的语言相互比较的一个更大的问题。 例如,C ++ vtable查找真的比Obj-C消息快吗?快多少?线程化,多态性,排序等。在我寻求使用重复的对象模型和各种测试代码构建项目之前,我想知道是否有人已经这样做以及在何处得到结果。这种类型的测试和比较本身就是一个项目,可能会花费大量时间。也许这不是一个项目,但是可以比较两个,只有输出。 我在寻找硬数据,而不是传福音。像你们中的许多人一样,出于各种原因,我爱又恨这两种语言。此外,如果外面有人积极地追求同样的事情,那么我会投入一些代码来查看最终结果,这很有趣,而且我相信其他人也会提供帮助。我的猜测是它们都有长处和短处,我的目标是精确地找出它们是什么,以便在实际情况下可以避免/利用它们。

1
.EACHI在data.table中?
我似乎无法找到究竟任何文件.EACHI中做data.table。我在文档中看到了简短的提及: 当在i和setting中传递那些组时,对已知组的子集进行聚合特别有效by=.EACHI。当i为data.table时,DT[i,j,by=.EACHI]评估连接的每一行j的组。我们称每个i为分组。DTi 但是,“群体”在意义上DT意味着什么?群组是否由设置的键确定DT?该组是否是使用所有列作为键的每个不同的行?我完全理解如何运行类似的东西,DT[i,j,by=my_grouping_variable]但是对于如何.EACHI工作却感到困惑。有人可以解释吗?


8
加快Java -Xms和-Xmx选项的权衡
给定这两个命令 A: $ java -Xms10G -Xmx10G myjavacode input.txt B: $ java -Xms5G -Xmx5G myjavacode input.txt 我有两个问题: 由于命令A保留了更多的参数存储空间,因此A的运行速度会比B快吗? 如何-Xmx和-Xms影响正在运行的进程,我的程序的输出?


12
MySQL存储过程使用或不使用它们
我们正处于一个新项目的开始,我们真的想知道是否应该在MySQL中使用存储过程。 我们将仅使用存储过程来插入和更新业务模型实体。有几个表代表模型实体,我们将在那些存储过程的插入/更新中对其进行抽象。 另一方面,我们可以从Model层调用插入和更新,但是不能在MySQL中而是在PHP中。 根据您的经验,哪个是最佳选择?两种方法的优点和缺点。就高性能而言,哪一个最快? PS:这是一个大多数阅读的Web项目,而高性能是最重要的要求。


7
快速获取特定路径中的所有文件和目录
我正在创建一个备份应用程序,其中c#扫描目录。为了获得目录中的所有文件和子文件,在使用这样的东西之前: DirectoryInfo di = new DirectoryInfo("A:\\"); var directories= di.GetFiles("*", SearchOption.AllDirectories); foreach (FileInfo d in directories) { //Add files to a list so that later they can be compared to see if each file // needs to be copid or not } 唯一的问题是,有时无法访问文件,并且出现一些错误。我得到一个错误的例子是: 结果,我创建了一个递归方法,该方法将扫描当前目录中的所有文件。如果该目录中有目录,则将通过该目录再次调用该方法。关于此方法的好处是,我可以将文件放在try catch块中,如果没有错误,可以选择将这些文件添加到列表中,如果我有错误,则可以将目录添加到另一个列表中。 try { files = di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly); …

7
C ++枚举的使用是否比整数慢?
这确实是一个简单的问题: 我正在编写Go程序。我应该用aQVector&lt;int&gt;或a代表董事会QVector&lt;Player&gt;吗 enum Player { EMPTY = 0, BLACK = 1, WHITE = 2 }; 我想当然会发现,使用Player而不是整数会更慢。但是我想知道还有多少,因为我相信使用enum是更好的编码。 我已经完成了一些有关分配和比较Player的测试(相对于int) QVector&lt;int&gt; vec; vec.resize(10000000); int size = vec.size(); for(int i =0; i&lt;size; ++i) { vec[i] = 0; } for(int i =0; i&lt;size; ++i) { bool b = (vec[i] == 1); } QVector&lt;Player&gt; vec2; vec2.resize(10000000); …

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.