问题标签 [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 投票
2 回答
3218 浏览

profiling - Linux内核中Perf事件子系统的性能开销

Linux 的性能计数器是一个新的基于内核的子系统,它为所有事物的性能分析提供了一个框架。它还涵盖了硬件级别(CPU/PMU、性能监控单元)功能和软件功能(软件计数器、跟踪点)。从 2.6.33 开始,内核提供 'perf_event_create_kernel_counter' 内核 api 供开发人员创建内核计数器以收集系统运行时信息。我最关心的是启用 tracepoint/ftrace 时对整个系统的性能影响。我找不到关于它们的文档。曾经有人告诉我,ftrace 是通过动态修补代码实现的,它会大大降低系统速度吗?

0 投票
2 回答
484 浏览

java - 当新的线程将运行时,更大的线程池或额外的 ExecutorService?

ExecutorService我有一个与Java中可能的 s 开销有关的问题。

本实现具有ExecutorService A5个线程的容量。

  • 它运行类型的线程A
  • 类型A线程执行一些数据库读取和写入。

现在,一个类型的线程B将在一些类型的线程A完成后运行。

  • 将运行的类型B线程的数量有时会有所不同。
  • 类型B线程做一些文件系统 IO(不是数据库)。

我也应该这样

  • 添加一个新ExecutorService的来处理类型B线程
  • 还是我应该增加该线程的容量ExecutorService A并运行类型B线程?

我认为 Java 有两个ExecutorServices 可能会有一些额外的开销,但另一方面,线程总数会增加。这有关系吗?

0 投票
2 回答
138 浏览

php - 输出缓冲是否比 FS 命中更昂贵?

就是这样。OB比包含文件重吗?

0 投票
12 回答
121209 浏览

overhead - 什么是“开销”?

我是计算机科学专业的学生,​​在谈到程序和排序时,我经常听到“开销”这个词。这到底是什么意思?

0 投票
2 回答
956 浏览

sql-server - SQL Server 中 sql_variant 列开销的字节成本是多少?

我有一个表,其中包含许多具有 15 位精度的浮点数据类型的列。每列消耗 8 个字节的存储空间。大多数情况下,数据不需要这种精度,可以存储为真实数据类型。在许多情况下,该值可以为 0,在这种情况下,我可以不用存储单个字节。

我的目标是优化空间存储需求,这是我在使用 SQL Express 4GB 数据库大小限制时面临的问题。

如果 byte、real 和 float 数据类型存储在 sql_variant 列中,那么存储这些值显然会产生一些开销。这种间接费用的成本是多少?

然后,我需要评估是否真的会节省大量空间(或不会)切换到使用 sql_variant 列数据类型。

谢谢, 艾伦

0 投票
4 回答
985 浏览

c# - C# 中的计算开销 - 使用 getter/setter 与直接修改数组和转换速度

我本来打算写一篇长篇大论的文章,​​但我会在这里总结一下:

我正在尝试通过 XNA 模仿 NES 的图形老式风格。但是,我的 FPS 很慢,试图修改每帧 65K 像素。如果我只是循环遍历所有 65K 像素并将它们设置为任意颜色,我会得到 64FPS。我为查找应该将哪些颜色放置在哪里而编写的代码,我得到了 1FPS。

我认为这是因为我的面向对象代码。

现在,我将事物分为大约六个类,包括 getter/setter。我猜我至少每帧调用 360K getter,我认为这是很多开销。每个类都包含包含自定义枚举、int、Color 或 Vector2D 字节的非/和-或一维或二维数组。

如果我将所有类组合成一个类,并直接访问每个数组的内容会怎样?代码看起来很乱,并抛弃了面向对象编码的概念,但速度可能会快得多。

我也不担心访问冲突,因为任何获取/设置数组中数据的尝试都将在块中完成。例如,所有对数组的写入都将发生在从它们访问任何数据之前。


至于强制转换,我说我使用的是自定义枚举、int、Color 和 Vector2D、字节。 在 .net Framework、XNA、XBox、C# 中使用和访问哪些数据类型最快?我认为不断铸造可能是这里放缓的原因。

此外,我没有使用数学来确定应该放置哪些索引数据,而是使用预先计算的查找表,因此我不必使用常数乘法、加法、减法、除法每帧。:)

0 投票
2 回答
3936 浏览

c++ - 测试虚函数的开销

我设置了一个(可能非常不科学)小测试来确定单级单继承中虚函数的开销,我得到的结果在多态访问派生类或直接访问派生类时完全一样。有点令人惊讶的是当任何函数被声明为虚拟时引入的计算时间的数量级(见下面的结果)。

声明成员函数时是否有这么多开销,为什么即使直接访问派生类仍然存在?

代码如下:

结果:

base* mybase = new derived;平均约为 338 毫秒。

derived* myderived = new derived;平均约为 338 毫秒。

消除继承和删除虚函数平均为 38 毫秒。

这几乎少了10倍!所以基本上,如果任何函数被声明为虚拟,即使我不以多态方式使用它,开销也将始终相同?

谢谢。

0 投票
1 回答
593 浏览

.net - WCF。ConcurrencyMode.Multiple 的开销

我有一个同步使用的 WCF 服务,但它的 ConcurrencyMode 设置为 ConcurrencyMode.Multiple 值,因为该服务实际上是无状态的。这种模式会带来多少开销?将模式更改为 ConcurrencyMode.Single 是否有意义?

0 投票
5 回答
824 浏览

delphi - 在长循环中处理消息时如何最小化开销

我的 Delphi 程序中有一些很长但很简单的循环,这些循环可能会循环数百万次并需要几秒钟的时间才能执行。循环内的代码非常快并且已经过优化。只是需要很长时间,因为它做了很多次。

例如:

现在我不希望我的程序没有响应,所以我想在循环中添加一个 Application.ProcessMessages 。但我也希望添加的语句尽可能减慢我的循环速度。

我正在关注一个链表,所以我什至没有可用的计数变量,如果我想要间隔就必须添加一个。或者我必须添加一个计时器,但需要尽量减少检查时间。

我应该如何实现这一点以最大限度地减少增加的开销?


结论:

现在,我正在做类似 APZ28 的回答。

但从长远来看,我应该实现某种线程来处理这个问题。感谢您指出这一点,因为我认为 Application.ProcessMessages 是唯一的方法。

0 投票
1 回答
91 浏览

objective-c - 屏幕外的图形操作会产生处理开销吗?

我正在尝试为应用程序优化一些图形例程,我想知道是屏幕外动画(例如,[object startAnimating])还是通过设置它的矩形(屏幕外)来简单移动 UIImageView,有任何处理器开销,还是在屏幕外时以某种方式忽略它们?

非常感谢您的帮助。