问题标签 [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.
c++ - 可能很长的循环并在里面声明变量
我最近编写了一个动态程序来计算两条 DNA 链序列(可能很长)之间的相似度(修改后的编辑距离)。
我的代码就像(不是实际代码,因为它是一个分配):
上面的代码在大约 2400 行的文件上完成大约需要 40 分钟。如果我将 p,d 和赋值对移到嵌套的 for 循环之外并运行完全相同的文件,它将在大约 1 分钟内完成。
我在其他线程中读到性能几乎相同。我还用-O2 编译了它。
为什么上面的代码这么慢?
python - 加载环境以运行 Python 脚本有多昂贵?
我有一个每天运行数千次的后台 python 脚本。我只是用python foo.py
. 脚本本身进行一些导入(解析库和 sqlalchemy),然后建立数据库连接,进行解析并将数据保存到 db。
我想知道每次运行脚本时是否会增加很多开销来加载 python 环境?
我可以让脚本启动一次,它会有一个轮询循环来查看它是否应该做某事,但想澄清这样做是值得的。
有输入吗?
c++ - C++ static_cast 运行时开销
请参阅下面的代码。
a)在这种情况下(简单继承,没有虚拟成员), B::df() 中的静态转换是否有任何开销(无论如何)?我发现类似问题的一些相互矛盾的答案,这就是我问的原因......
b)我正在考虑const M1 * func
在 A 中设置私有并在 B 中引入一个新的私有字段const M2 * func
以避免强制转换,但这会使事情复杂化并使智能指针的使用更加困难。你有没有更好的方法来避免演员阵容?
c# - 无数据类型的开销是多少?
我不想在微优化上引发一场激烈的战争,但我对某些事情感到好奇。
创建没有内在数据的类型的实例在内存和性能方面的开销是多少?
例如,一个实现的简单类IComparer<T>
可能只包含一个Compare
方法,而没有属性或字段。
我见过的典型示例代码只是调用new FooComparer()
,只要需要其中之一。
我无法想象这里的实例化成本非常高,但我很想知道它实际上是什么。以及它将如何与一个静态工厂类进行比较,该类维护一个比较器类型的字典,以便一个比较器实例可以在需要的任何地方使用。
c++ - 内联会加速 void a(string b) { cout << b; }
对于作业,我们应该编写两种处理输出的方法。一种用于输出字符串,一种用于整数。
基本上我们有两个方法调用另一个方法:
inline 会通过不调用另一个函数来节省一些开销来加快速度,还是会在命名空间等方面为 cout 创建更多?
javascript - 与类与对象相关的 Javascript 开销
我想知道与创建新类而不是该类的新对象相关的开销是小还是大。我正在使用 dojo,但我将提供纯 JS 的对比示例。我将在启动时创建 10 到 100 个对象,我认为这不是一个严重的问题,但我想涵盖我所有的基础。
案例 1:Javascript 对象
与案例 2:Javascript 类
编辑:人们想知道我为什么会采用这种方法。我正在实现一个模块化程序,用户可以根据需要创建和/或加载对象,而不是拥有一个 Person/Shape/Text... 类并使用 50,000,000 个参数(姓名、年龄、性别、标签、字体、 x , y , w , h ...) 我想创建一个包含所有值的类。这也将简化代码的编辑,因为我希望允许用户从浏览器中查看和修改代码。我对 OOP 并不陌生,我确实意识到这与标准编程过程有所不同,所以对我知道自己在做什么有点信心 =)
c++ - C++ 异常开销
为什么嵌入式平台开发人员不断尝试C++ exceptions
从他们的SDKs
.
例如,Bada SDK
针对异常使用建议以下解决方法,它看起来异常难看:
这种行为的原因是什么?
据我所知,ARM
编译器完全支持C++ exceptions
,这实际上不是问题。还有什么?平台上的异常使用和展开的开销ARM
真的要花很多时间来解决这些问题吗?
也许还有其他我不知道的东西?
谢谢你。
objective-c - Objective-c:类内部的方法调用仍然使用选择器还是纯调用?
我正在比较不同的编程语言和开发平台。Objective-c 和其他语言的一个重要区别是它使用选择器、消息,所以每次都调用 objc_msgSend,跨越共享库的边界,因此引入了可测量的开销,加上 objc_msgSend 的更多开销(在缓存的情况下很少)内部运作,就像这里解释的那样:http: //www.mulle-kybernetik.com/artikel/Optimization/opti-3.html 我不是专家,所以我必须相信这篇文章,在这个论坛上找到。在 Apple 官方指南中,我发现“点语法”只是“语法糖”,即使用了相同的方法调用机制。问题:我想知道,如果在类实例中执行纯调用,那么调用 objc_msgSend 将是一种浪费。也就是从同一个类实例的方法调用一个类实例的方法。谢谢
c++ - 英特尔 TBB 并行化开销
为什么英特尔线程构建模块 (TBB)parallel_for
的开销如此之大?根据第 3.2.2 节Automatic ChunkingTutorial.pdf
大约半毫秒。这是教程中的一个尝试:
注意:通常一个循环需要至少一百万个时钟周期才能使 parallel_for 提高其性能。例如,在 2 GHz 处理器上花费至少 500 微秒的循环可能会受益于 parallel_for。
从我目前所读到的内容来看,TBB 在内部使用线程池(工作线程池)模式,它通过最初只产生工作线程一次(花费数百微秒)来防止这种糟糕的开销。
那么什么是花时间呢?使用互斥锁的数据同步不是那么慢吗?此外,TBB 不使用无锁数据结构进行同步吗?
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)如果速度是我图书馆的主要目标,使用哪种方法最好?我意识到这是非常开放的,我可能最好运行自己的基准测试,但如果有人在这里有经验,那就太好了!