小编Rod*_*mez的帖子

查看固定长度数组之间有多少字节相等的最快方法

我有两个16个元素(字符)数组,我需要"比较",看看两者之间有多少元素相等.

这个例程将被使用数百万次(通常运行大约60或7000万次),所以我需要它尽可能快.我正在研究C++(C++ Builder 2007,用于记录)

现在,我有一个简单的:

matches += array1[0] == array2[0];
Run Code Online (Sandbox Code Playgroud)

重复16次(因为分析看起来比使用for循环快30%)

有没有其他方法可以更快地工作?

有关环境和数据本身的一些数据:

  • 我正在使用C++ Builder,它没有任何速度优化需要考虑.我将最终尝试使用另一个编译器,但是现在我仍然坚持使用这个.
  • 大多数时候数据会有所不同.100%相等的数据通常非常罕见(可能低于1%)

c++ arrays optimization

11
推荐指数
2
解决办法
3356
查看次数

有没有办法在使用Frames时具有类似KeyPreview的功能?

我希望在Frames中有一个KeyPreview功能,我的意思是,当输入(例如,选择框架的一个控件,或鼠标在里面)是在一个框架(这将有几个面板和其他控件) )然后由框架首先处理用户按下的键.

有没有办法做到这一点?我没有在TFrame中找到类似于KeyPreview的属性.

我正在使用RAD Studio的XE5版本,尽管我主要使用的是C++ Builder.

delphi vcl c++builder tframe keypreview

6
推荐指数
1
解决办法
1529
查看次数

调试和解决非常零星的崩溃的想法 - 似乎是一个AV

我有一个错误导致我的应用程序只是消失而没有错误消息或类似的东西.该应用程序刚刚从屏幕上消失,它不再列在任务管理器上.

该应用程序是一个C++ Builder应用程序(CBuilder2007),我已经尝试了所有我想到的尝试捕获此错误.它很少发生,它从未在我的机器上崩溃,只在我们在办公室的测试机器中崩溃过一次.对于我们的一个客户来说,它更频繁地发生,但我们还没有找到实现它的方法,或者找到发生这种情况的情况.这是一个沉重的多线程应用程序.

我在这个应用程序中启用了madExcept,但它没有捕获任何东西.我已经使用set_terminateset_unexpectedRTL例程添加了处理程序,没有任何运气.

我所拥有的唯一信息来自我所做的"加载器应用程序"包装器,以从主应用程序获取返回代码.它与C0000005代码一起退出,我认为这意味着发生了访问冲突.奇怪的是,如上所述,甚至没有Windows错误框或类似的东西.

问题是:任何试图抓住这个想法的想法?正如我甚至没有一个线索,其中这可能发生(我有很多周围的应用程序登录的,但"跟踪"应用程序崩溃之前还没有导致任何地方),我的想法与set_terminateset_unexpected程序是让一个堆栈跟踪,试图查看错误的生成位置,但到目前为止这些例程根本没有被调用(至少在我办公室这里发生过这种情况)

提前致谢


[Update 22.Sept.2009]使用AddVectoredHandlerException我能够从崩溃中获得一个callstack,现在我可以开始尝试隔离并修复bug.谢谢!!!

c++ crash exception-handling c++builder access-violation

2
推荐指数
1
解决办法
895
查看次数