- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要捕获 SIGABRT、SIGSEGV 和 SIGILL
,以便在我无法控制的事情失败并且程序需要退出时向用户显示正确的严重错误消息。
但是我的程序做了很多实时计算,所以性能很重要。
signal()
( http://www.cplusplus.com/reference/csignal/signal/ ) 是否会导致任何性能损失
(某种持续监控?)或根本不会(仅在异常发生时触发,否则没有性能损失)。
编辑:我的软件在 Windows(7 及更高版本)和 OS X(10.7 及更高版本)上运行。
最佳答案
如果您的时间关键进程捕获信号,则不存在“特殊”时间浪费。实际上,内核为您的进程保存了一个信号和操作表,如果发送信号,它必须遍历该表。但是向进程发送消息或调用处理程序的每种方式都需要时间。消息队列或等待“标志”将产生几乎相同的“浪费”。
但使用信号可能会产生其他应提及的含义。如果信号到达,几乎每个系统调用都可以被中断。调用的返回值为 EINTR
。如果您有很多信号传递给您的进程,这可能会大大降低您的应用程序的速度,因为您必须始终检查 EINTR
并再次进入系统调用。而且每个系统调用都有点昂贵。因此,在具有 EINTR
返回值的系统调用上循环很多可能是一个糟糕的设计。
但是对于您的问题,您只查找SIGABRT
、SIGSEGV
和SIGILL
。这些信号通常仅用于极少数异常(exception)情况。所以不要害怕根据需要使用它们。但避免为自己的 IPC 频繁使用这些信号。这可以做到,但设计非常糟糕。对于用户 IPC,有更好的信号名称和更好的方法。
简而言之:对于仅捕获异常信号,您在这里没有任何时间关键问题。
关于c++ - 信号(): any performance impact?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30566661/
如何在 Linux x64 上以侵入性和影响最小的方式获取已运行进程的所有线程堆栈跟踪? 到目前为止我想到的事情: gdb - 恐怕它会使进程变慢太多,而且持续时间太长; strace+ - 不知道它
在impact.js框架中,Weltmeister关卡编辑器生成的关卡对象的结构是什么?我能找到的最多信息是 ig.game.loadlevel 的文档,但是非常有限。特别是layer的data属性的
我需要捕获 SIGABRT、SIGSEGV 和 SIGILL,以便在我无法控制的事情失败并且程序需要退出时向用户显示正确的严重错误消息。 但是我的程序做了很多实时计算,所以性能很重要。 signal(
引入 ES6 template strings由反引号 ` 分隔。 在哪些情况下用反引号替换字符串周围的单引号 ' 或双引号 " 会产生不同的结果,否则是不安全的? 作为操作的一部分执行代码内现有反引
我想将 Upcoming 文本推到底部,而 7 pax 文本保留在顶部。我对该列使用了 verticalArrangement = Arrangement.SpaceBetween,但它没有任何效果,
我一直在努力使用 Impact 字体大约一年了。 它应该是一种网络安全字体,但事实并非如此。 当我使用标准的“Impact”时,它在移动平台上不起作用。如果我使用特定的字体@font-face,就不可
我有一个多线程Step,配置了一个带有48个线程corePoolSize的线程池(这是一台大机器),但是我没有配置节流限制。 我想知道是否因为这个原因一直在使用机器。 Spring Batch文档说节
简单问题: 是PropTypes增加交付的 bundle 大小并且仅在开发模式下显示吗? 最佳答案 这取决于您如何构建项目。如果您使用webpack并将process.env.NODE_ENV设置为生
这个问题已经有答案了: Performance difference between Java 8 lambdas and anonymous inner classes (2 个回答) Does a
假设我们有以下代码: @SpringBootApplication @ConditionalOnProperty(value = "scheduling.enable") @EnableSchedul
我正在尝试使用 Impact.ttf。它内置于 OSX 中,但在 xcode 上的自定义字体中看不到它。所以我将它包含在我的项目中,如屏幕所示并使用 UIFont *font1 = [UIFont f
在组件树中向下或向上有条件地渲染弹出窗口(例如通过 {shouldShowLoading && } 加载微调器弹出窗口)是否更有意义?那么以下两个选项中哪一个是有利的 - 或者在性能上没有差异? 在组
如何在不影响任何日期的情况下,从 oracle 数据库的 datetime 列中删除时间并将其保存为默认时间 00:00:00。 例如:我有一个数据类型为 datetime 的列,并且还有数千条记录,
我正在重构我的一个 Controller 以使其成为一项服务,我想知道不将整个服务容器注入(inject)我的 Controller 是否会对性能产生影响。 这样效率更高吗: innova.path.
如果我在 AsyncTask 的 doInBackground 方法中启动一个新线程,从性能的角度来看是否可以?我写了一个从服务器下载文件的小程序。该方法在 doInBackground 中运行。现在
所以,我们正在尝试运行一个屏幕报告,这不会更改任何存储的数据。但是,它很复杂,因此需要遍历几个(TEMPORARY*)表。 它从已复制的事件表中提取数据。 从 中获取“合格”记录时令人讨厌的一点 te
我正在构建一个实用程序,用于从手机中卸载不太重要的包以释放空间和资源。 它适用于 root 的 android 手机。 该实用程序将删除几个不需要的语言包,如阿拉伯语, 中文, 丹麦语等 对于用户来说
我想使用 matplotlib 颜色映射的 set_bad 参数为 nan 值分配特定颜色。我创建了一个颜色图: from matplotlib.colors import ListedColorma
我是 HTML 5 和 Impact 的新手。我将开始使用 HTML 5、Javascript 进行编程。我听说 Impact 是最好的 Javascript 2D 引擎之一,所以我考虑购买它并尝试一
是否可以暂时忘记身份验证、jwt 登录内容和安全性并稍后再实现? 我选择java作为我的游戏的restful服务后端,但是我很难使用mysql数据库、jwt身份验证和spring boot设置一个简单
我是一名优秀的程序员,十分优秀!