问题标签 [overhead]

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 投票
4 回答
616 浏览

c++ - 可能很长的循环并在里面声明变量

我最近编写了一个动态程序来计算两条 DNA 链序列(可能很长)之间的相似度(修改后的编辑距离)。

我的代码就像(不是实际代码,因为它是一个分配):

上面的代码在大约 2400 行的文件上完成大约需要 40 分钟。如果我将 p,d 和赋值对移到嵌套的 for 循环之外并运行完全相同的文件,它将在大约 1 分钟内完成。

我在其他线程中读到性能几乎相同。我还用-O2 编译了它。

为什么上面的代码这么慢?

0 投票
1 回答
110 浏览

python - 加载环境以运行 Python 脚本有多昂贵?

我有一个每天运行数千次的后台 python 脚本。我只是用python foo.py. 脚本本身进行一些导入(解析库和 sqlalchemy),然后建立数据库连接,进行解析并将数据保存到 db。

我想知道每次运行脚本时是否会增加很多开销来加载 python 环境?

我可以让脚本启动一次,它会有一个轮询循环来查看它是否应该做某事,但想澄清这样做是值得的。

有输入吗?

0 投票
1 回答
14028 浏览

c++ - C++ static_cast 运行时开销

请参阅下面的代码。

a)在这种情况下(简单继承,没有虚拟成员), B::df() 中的静态转换是否有任何开销(无论如何)?我发现类似问题的一些相互矛盾的答案,这就是我问的原因......

b)我正在考虑const M1 * func在 A 中设置私有并在 B 中引入一个新的私有字段const M2 * func以避免强制转换,但这会使事情复杂化并使智能指针的使用更加困难。你有没有更好的方法来避免演员阵容?

p>

p>

0 投票
3 回答
270 浏览

c# - 无数据类型的开销是多少?

我不想在微优化上引发一场激烈的战争,但我对某些事情感到好奇。

创建没有内在数据的类型的实例在内存和性能方面的开销是多少?

例如,一个实现的简单类IComparer<T>可能只包含一个Compare方法,而没有属性或字段。

我见过的典型示例代码只是调用new FooComparer(),只要需要其中之一。

我无法想象这里的实例化成本非常高,但我很想知道它实际上是什么。以及它将如何与一个静态工厂类进行比较,该类维护一个比较器类型的字典,以便一个比较器实例可以在需要的任何地方使用。

0 投票
7 回答
431 浏览

c++ - 内联会加速 void a(string b) { cout << b; }

对于作业,我们应该编写两种处理输出的方法。一种用于输出字符串,一种用于整数。

基本上我们有两个方法调用另一个方法:

inline 会通过不调用另一个函数来节省一些开销来加快速度,还是会在命名空间等方面为 cout 创建更多?

0 投票
2 回答
1649 浏览

javascript - 与类与对象相关的 Javascript 开销

我想知道与创建新类而不是该类的新对象相关的开销是小还是大。我正在使用 dojo,但我将提供纯 JS 的对比示例。我将在启动时创建 10 到 100 个对象,我认为这不是一个严重的问题,但我想涵盖我所有的基础。

案例 1:Javascript 对象

与案例 2:Javascript 类

编辑:人们想知道我为什么会采用这种方法。我正在实现一个模块化程序,用户可以根据需要创建和/或加载对象,而不是拥有一个 Person/Shape/Text... 类并使用 50,000,000 个参数(姓名、年龄、性别、标签、字体、 x , y , w , h ...) 我想创建一个包含所有值的类。这也将简化代码的编辑,因为我希望允许用户从浏览器中查看和修改代码。我对 OOP 并不陌生,我确实意识到这与标准编程过程有所不同,所以对我知道自己在做什么有点信心 =)

0 投票
6 回答
9560 浏览

c++ - C++ 异常开销

为什么嵌入式平台开发人员不断尝试C++ exceptions从他们的SDKs.

例如,Bada SDK针对异常使用建议以下解决方法,它看起来异常难看:

这种行为的原因是什么?

据我所知,ARM编译器完全支持C++ exceptions,这实际上不是问题。还有什么?平台上的异常使用和展开的开销ARM真的要花很多时间来解决这些问题吗?

也许还有其他我不知道的东西?

谢谢你。

0 投票
3 回答
388 浏览

objective-c - Objective-c:类内部的方法调用仍然使用选择器还是纯调用?

我正在比较不同的编程语言和开发平台。Objective-c 和其他语言的一个重要区别是它使用选择器、消息,所以每次都调用 objc_msgSend,跨越共享库的边界,因此引入了可测量的开销,加上 objc_msgSend 的更多开销(在缓存的情况下很少)内部运作,就像这里解释的那样:http: //www.mulle-kybernetik.com/artikel/Optimization/opti-3.html 我不是专家,所以我必须相信这篇文章,在这个论坛上找到。在 Apple 官方指南中,我发现“点语法”只是“语法糖”,即使用了相同的方法调用机制。问题:我想知道,如果在类实例中执行纯调用,那么调用 objc_msgSend 将是一种浪费。也就是从同一个类实例的方法调用一个类实例的方法。谢谢

0 投票
1 回答
3660 浏览

c++ - 英特尔 TBB 并行化开销

为什么英特尔线程构建模块 (TBB)parallel_for的开销如此之大?根据第 3.2.2 节Automatic ChunkingTutorial.pdf大约半毫秒。这是教程中的一个尝试:

注意:通常一个循环需要至少一百万个时钟周期才能使 parallel_for 提高其性能。例如,在 2 GHz 处理器上花费至少 500 微秒的循环可能会受益于 parallel_for。

从我目前所读到的内容来看,TBB 在内部使用线程池(工作线程池)模式,它通过最初只产生工作线程一次(花费数百微秒)来防止这种糟糕的开销。

那么什么是花时间呢?使用互斥锁的数据同步不是那么慢吗?此外,TBB 不使用无数据结构进行同步吗?

0 投票
1 回答
3602 浏览

visual-studio - Windows gcc 编译和 Visual Studio 编译之间的性能比较

我目前正在编译一个与 gcc 一起使用的 makefile 提供的开源优化库(本机 C++)。由于我是 Windows 用户,我很好奇我看到的编译它的两个选项,使用带有 MinGW/Cygwin 的 gcc 或手动构建 Visual Studio 项目并编译源代码。

1) 如果我使用 MinGW/Cygwin + gcc 进行编译,生成的 .lib(静态库)是否需要来自 MinGW/Cygwin 的任何库?即我可以将我编译的 .lib 分发到没有 MinGW/Cygwin 的 Windows PC 并且它仍然可以运行吗?

2)除了编译器本身之间的性能差异之外,在使用 MinGW/Cygwin 和 gcc 进行编译时是否存在相关的开销——例如仿真层是否编译到库中,或者 gcc 是否构建了本机 Windows 库?

3)如果速度是我图书馆的主要目标,使用哪种方法最好?我意识到这是非常开放的,我可能最好运行自己的基准测试,但如果有人在这里有经验,那就太好了!