我有一个函数让我们称之为foo(),它对矩阵执行一些操作。 如果我在控制台应用程序中调用该函数,则需要1秒才能返回结果。 如果我在Windows窗体应用程序中调用它(按钮单击,启动一个新线程,从线程调用foo()),该函数需要3秒钟返回。显然具有相同的输入和相同的输出。 我认为这是因为处理Windows窗体的线程仍处于活动状态,我该如何阻止它,或者减慢它的优先级?线程优先级和函数执行时间
回答
我不明白为什么要杀死表单事件线程。这会导致您的应用程序无法使用。该线程并不是运行计算密集型任务,而是等待表单上的事件,因此将优先级设置为低电平几乎没有什么收获。
请说明您测量线程完成所花费的时间的精确程度。与启动/停止线程相关的某些开销不会出现在控制台应用程序中。
我这样做:clock_t finish(clock()); FOO(); clock_t finish(clock()); int n =完成 - 开始;在控制台的情况下,值约为1000,窗口的形式是3500左右。这听起来真的很奇怪。这个函数真的是一样的,我添加了一个按钮点击调用的线程...就是这样 – andrea 2012-01-18 08:54:28
如何将'n'指示出线程并显示它,或者在调试器中断处停止线程并检查它计算之后呢?值应该是相同的,正如@Tudor所暗示的那样 - 这是同一个核心类型做同样的工作。在1000-3000处理器中,你会很不幸地发现foo()被任何事情打断,我相信你已经做了不止一次的测试。一旦由任何线程启动,很有可能foo()会运行直到返回和第二个clock_t调用。 – 2012-01-18 09:52:06
以及我发现在opencv库中定义的函数在窗体中比在控制台中多4倍。我只是重写了功能,性能几乎相同。 – andrea 2012-01-18 11:48:28
- 1. JavaScript中函数执行的优先级
- 2. 并行线程与实时优先级
- 3. 光标时钟和线程优先级
- 4. 线程优先级
- 5. 流程优先与线程优先级
- 6. 线程消息之间的优先级?
- 7. 优先级和优先级
- 8. 执行捕捉优先级
- 9. 在最大优先级线程之前,最低优先级线程是如何执行的?
- 10. 更改线程优先级
- 11. Android的线程优先级
- 12. 线程优先级的Android
- 13. NSOperationQueue VS并行线程的优先级
- 14. 线程,优先级和放弃
- 15. Windows和Linux线程优先级等价
- 16. ThreadPoolExecutor和Android的线程优先级
- 17. 线程内线程的优先级
- 18. C++多线程的优先级执行失败
- 19. 如何确定terraform执行优先级的优先级
- 20. 线程 - 优先级突发事件与优先级
- 21. 通过了解线程的优先级来设置线程的优先级
- 22. JQuery和Facebook API函数优先级/优先
- 23. C++函数中非常奇怪的优先级/优先级
- 24. 线程运行后快速更改线程qualityOfService /优先级
- 25. 线程优先级和线程准确性
- 26. 线程同步和设置线程的优先级
- 27. 聚合线程和线程优先级(java)
- 28. CSS和Javascript - 执行优先
- 29. Sencha Touch 2 - 执行顺序/优先级
- 30. JavaScript执行的优先级是什么?
不要“想”。测量。 – 2012-01-18 08:11:27
以及我使用c_clock来衡量计算函数的时间,不知道如何衡量线程处理表单花费的时间,因为我不知道如何访问该线程,这就是为什么我“想” – andrea 2012-01-18 08:21:12
我的意思是使用分析器。使用'clock'测量将是非常不精确的,因为.NET会在背后做很多事情,这会破坏这些简单的措施。 – 2012-01-18 09:27:53