问题标签 [coding-efficiency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
262 浏览

sql-server - MS SQL Server - 高效存储过程问题

我有很多数据需要插入,然后根据数据库中已有数据的历史记录进行处理。这需要一个初始INSERT INTO ... VALUES命令,然后是一系列查询、计算和后续INSERT INTO ... SELECT FROM附加查询。

我工作的实际处理部分是一个通用的存储过程,但是我用唯一的初始值将它INSERT INTO ... VALUES包装为一个打包的存储过程。

当我运行一天的存储过程时,大约需要 6 分钟。当我尝试在同一个 SSMS 执行中运行多天的存储过程时,似乎比每次调用的 6 分钟要长得多。如果我在一段时间后停止存储过程,它似乎实际上已经完成了所有事情,但由于某种原因最后被挂断了。

我所描述的是否有任何危险信号表明我可能做某事效率低下?我发现将打包的存储过程包装在一个BEGIN ... END子句中会有所帮助,但并非总是如此。

示例代码:

0 投票
0 回答
57 浏览

python - 用子字符串迭代列表并替换上部字符串的最佳方法

我想提高我的代码的性能和运行时间,寻找更好地编写我的循环。

例如,我有一个字典,其中包含单词作为键,它们的西班牙语翻译作为值。

我也有一个给定的英文句子,我想遍历我的字典中的任何单词并将其替换为西班牙语翻译。对于这种情况,我认为给定句子中最多可以存在一个单词。

我编写了一个基本代码来做到这一点,但我不确定这是最佳实践:

我怎样才能写得更好?

谢谢!

0 投票
3 回答
149 浏览

python - 使用 if 条件的更有效的 Pythonic 方式

我有这段代码检查条件:

这很难理解(在我看来),所以我想知道是否有人可以用更短的行建议一些更 Pythonic 的东西?例如,我可以合并两个 for 循环吗?如果我合并两个 for 循环,它会消耗更多时间吗?

0 投票
2 回答
105 浏览

c++ - 字符串连接函数的执行时间出乎意料地差

我编写了以下字符串连接函数 ( join) 以减少分配次数和构造最终字符串所花费的时间。我还想编写一个易于使用的附加函数(如果可能的话,单行)。

我在相当大量的字符串上使用类的和测试了join针对典型内置 C++ 连接功能的方法。与普通或方法相比,我的方法如何以及为什么在时间执行方面产生更差的结果?operator+=operator+std::stringoperator+=operator+

我正在使用以下类来测量时间:

我正在比较以下方式:

我的结果是:

  • 执行时间:11552 ns(join接近)。
  • 执行时间:3701 ns(operator+=()接近)。
  • 执行时间:5898 ns(operator+()接近)。

我正在编译:g++ efficient_string_concatenation.cpp -std=c++11 -O3

0 投票
1 回答
48 浏览

processing-efficiency - 哪一个需要更少的 cpu 时钟周期来执行?毕达哥拉斯公式或“if”子句中整数之间的 16 个比较?

大概的答案就足够了。我想检查 2 个相同大小的矩形是否重叠 1) 现有代码检查一个矩形的所有 (x,y) 是否与另一个矩形的所有 (x,y) 一致。所以总共进行了 16 次比较 2)我的改进 - 计算每个矩形的左上角之间的距离并检查该距离是否小于矩形的对角线。

此外,任何讨论 CPU 时钟周期数/每次编码操作在 CPU 上执行一次所需的时间的书籍/材料都值得赞赏。

0 投票
3 回答
158 浏览

python - 麻烦简化重复-python中的函数中的多个if elif语句和多个循环

我对 Python 很陌生。

我坚信简单、简洁、高效的算法设计和编码风格。在学习 Python 的过程中,我意识到 Python 在幕后做了很多事情,因此语言本身对程序员非常友好。这很好,但我想深入了解我可以做哪些优化或在编码时保持习惯。今天我在简化代码时遇到了麻烦。

以下函数用于根据选择的难度级别在数独板上创建空白点。

这是我的代码:

如您所见,它非常重复。任何关于简化它或更有效的编码风格的想法都会受到赞赏。

另外,有没有更好的方法在 python 中初始化一个类,而不是__init__()在性能和​​内存使用方面调用?就像在 C++ 中一样,有一个初始化列表,它更干净、更快。

请随时指出我所犯的错误。任何建议将不胜感激。谢谢

0 投票
1 回答
762 浏览

python - 列表连接效率

假设我有两个列表,A = [1,2,3,4] 和 B = [4,5,6]

我想要一个包含 A 和 B 的元素的列表。(我不在乎 A 本身是否被更改)。

我可以做的几件事,以及我对它们的理解(如果我错了,请告诉我):

A.extend(B)(B 的元素被添加到 A 中;A 本身被改变)

C = A + B(创建一个全新的对象 C,其中包含 A 和 B 的内容。)

我想了解哪个更有效,所以我想知道是否有人可以告诉我以下假设是否不正确。

在 A.extend(B) 的情况下,我假设 python 只需要执行 3 个列表添加操作(B 的 3 个元素,每个元素都附加到 A)。但是,在执行 A + B 时,python 是否不必遍历列表 A 和 B,在这种情况下执行 7 个列表添加操作?(即,它必须创建一个新列表,遍历 A 并将所有元素放入其中,然后遍历 B 并将所有元素放入其中)。

我是否误解了解释器如何处理这些事情,或者这些操作在 python 中做了什么?

0 投票
1 回答
86 浏览

visual-studio - 如何使用 Intel Fortran Cluster Studio 2017 将 MPI 安装到 Visual Studio 2015 中的 QWIN 项目中?

我使用 QWIN 图形来监控计算过程中发生的情况。这对于发现错误也是一个很好的帮助。现在我已经并行化了代码(从命令行运行),但我想返回 Visual Studio 环境,因为到目前为止它一直非常高效。有控制台项目的说明,但这些没有给我图形窗口。

0 投票
6 回答
398 浏览

javascript - 什么是组成长度为 N 的字符串的最有效方法,其中随机字符从 af,0-9 中选择

要求是确定呈现字符串的最有效方法,例如,"#1a2b3c""1a2b3c"集合中随机选择

"abcdef0123456789"

或者

["a", "b", "c", "d", "e", "f", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]


为了比较结果的一致性,字符串.length应该是精确7的,如上例所示。

确定过程结果时间的迭代次数应10000如以下代码中使用的那样。


我们可以从两个前瞻性的例子和基准开始调查。方法的基准应包含在答复的文本中。请注意,如果可以使用更准确的基准,或者可以改进问题的文本,请在评论中提出建议。相关:能熟练使用 Javascript 的人可以简单地向我解释一下这里发生了什么

什么是最有效的,其中效率被定义为“速度”和“存储”所需的最少资源量,以实现返回具有的.length字符串N

速度和存储的效率是否会随着N增加而降低?

0 投票
1 回答
44 浏览

python-3.6 - 使写入文件过程更有效

我是编程新手,我正在运行这个脚本来清理一个大文本文件(超过 12000 行)并将其写入另一个 .txt 文件。问题是当使用较小的文件(大约 500 行左右)运行它时,它执行得很快,因此我的结论是,由于文件的大小,它需要时间。因此,如果有人可以指导我使这段代码高效,我们将不胜感激。

编辑:下面是答案中提到的更正代码,几乎没有其他更改以满足我的要求