我即将开始开发一个边缘检测系统(一旦我读过几本书,我正在以很快的速度这样做),但我想知道的一件事是像 Matlabs 这样的应用程序的速度(它可以将代码编译为 C++)与 AFORGE.NET 进行边缘检测。
非托管代码通常更快吗?
谢谢
我即将开始开发一个边缘检测系统(一旦我读过几本书,我正在以很快的速度这样做),但我想知道的一件事是像 Matlabs 这样的应用程序的速度(它可以将代码编译为 C++)与 AFORGE.NET 进行边缘检测。
非托管代码通常更快吗?
谢谢
对于某些事情,未管理的代码可能会更快,但是如果不对其进行测试,就不可能说它是否会对您的情况产生影响。您可以尝试在 C# 和 C++ 中编写一个小的但具有代表性的问题子集来衡量差异。当然,使其具有“代表性”(就性能特征而言)是一项挑战。
您的首要考虑应该是从提供可接受性能的一组语言和环境中选择最高效的语言/环境。对于绝大多数计算问题,生产力彻底胜过性能。
另一个高效的竞争者是具有 numpy 和 scipy 扩展的 Python。它可以利用 LAPACK,这在很大程度上减轻了使用 Python 的任何性能问题。
首先是的,非托管代码通常更快,但是多少?这取决于。在你的情况下,它不应该有太大的区别。
我可以告诉你这一点,因为最近我的一个朋友使用 AFORGE.Net 库开发了一个边缘检测系统(我猜是为了实现一个运动检测系统)。我不记得他抱怨过表现。