2012-09-03 50 views
0

我很好奇线程创建对运行.NET微型框架的netduino有什么影响。人们普遍认为线程有一个inherent overhead给他们,但我想知道是否有人知道在嵌入式环境中是否存在.net micro的优化,以及任何人都可以给我一些细节, (分配多少内存,生成需要多少个周期等)。.net微型框架中创建线程的开销是多少?

+0

.NET Micro是开源的,你为什么不看一看?并衡量你想知道的。 –

回答

2

根据我的经验,NETMF下每个线程的内存成本大约为1K。至于分配线程所需的时间,如果您正在考虑这样的问题,那么可能需要阅读嵌入式系统最佳实践。我不是在嘲笑你,还有相当一段难得的传说,可以为你节省心痛和麻烦。例如,线程的事情。如果你想要可靠性,你必须保证最大的资源需求。如果你打算说“不超过5个线程”,那么你最好在你的初始化过程中启动所有五个线程,并分配他们想要的所有资源。如果你不能这样做,那么你无法保证你的系统在负载下的稳定性。这样做的副作用是,启动它们所需的时间与系统的响应无关,尽管它稍微影响启动时间。

上下文切换存在开销。我无法给你量化的数字,因为我从来不需要对它进行基准测试。 NETMF正在金属上实施;您可以从您可以从ATMEL下载的SoC文档获得一些洞察。或者,如果你在netduino论坛上提问,克里斯可以告诉你一个公平的机会。

如果这是一个家庭作业问题,然后采取汉斯的建议,并看看源代码。如果您正在寻找构建应用程序并评估平台适用性的应用程序,那么在不同线程上执行时序敏感的事情时,我从来没有遇到切换延迟,但我从不使用超过三个或四个线程,其中一个以循环方式服务多个逻辑进程(所有时序不敏感的东西)。

再次,关键的长期稳定性是避免什么的动态分配。

显式编码循环法的优点是您可以控制逻辑进程的顺序。

+0

谢谢,这不是作业,也不是我开发系统。我只是好奇而已。谢谢 – devshorts

+2

然后,作为一个广泛的观察,我会补充一点,我发现Netduino非常适合任何不需要高速采样和计算的任何事情,我为其设计了自己的背板,以简化继电器和伺服电机的机箱安装,功率调节和一个将COM1重新映射到COM2的套接字,这样我就可以使用两个希望在COM1上的屏蔽。我发现简单性的交易非常有价值。 –