对于所有熟悉D编程语言的人,您将如何在嵌入式实时环境中使用它?我了解它最初的设计并不针对实时嵌入式环境,但这个问题更多地是关于如何使实时能力发生。
该语言的哪些结构是不可或缺的?
您认为哪些结构会成为问题?
是否有人成功地在嵌入式系统中使用过它?
任何其他想法或建议都可以。
D语言并不适合用于实时应用程序,主要是因为D语言的一些语言特性依赖于其垃圾回收器,而D的垃圾回收器是不可预测的,并且会间歇性地暂停程序以进行垃圾回收。引用Digital Mars:
垃圾回收并非万能药。它有一些缺点:
- 无法预测何时进行回收,因此程序可能会任意暂停。
- 运行垃圾回收所需时间无法保证受限。虽然在实践中通常很快,但这不能得到保证。
- 在进行垃圾回收时,除收集器线程外,所有其他线程都必须停止。
你仍然可以在没有垃圾回收器的情况下使用D语言(通过手动管理内存,就像在C / C ++中一样) - 这将防止您使用某些语言特性,例如关联数组和在内部分配内存却没有释放/返回对其的引用的库函数。 D在许多与内存管理无关的领域(例如元编程)仍然表现出色。
实时性更多关乎保证而非“实时”性能。因此有两种可能性: