对于所有熟悉D 编程语言的人,如何在嵌入式实时环境中使用它?我知道它的原始设计不是针对实时嵌入式环境的,但这个问题更多的是关于你将如何实现实时功能。
该语言的哪些结构是必不可少的?
您认为哪些结构会成为问题?
有没有人在嵌入式系统中成功使用过它?
任何其他想法或建议都会很棒。
D 并不是真正用于实时应用程序,主要是因为 D 的某些语言特性依赖于它的垃圾收集器,而 D 的垃圾收集器是不可预测的,并且会偶尔暂停你的程序以收集垃圾。报价:
垃圾收集不是灵丹妙药。有一些缺点:
- 集合何时运行是不可预测的,因此程序可以任意暂停。
- 集合运行所需的时间是没有限制的。虽然在实践中它非常快,但不能保证这一点。
- 在收集过程中,除了收集器线程之外的所有线程都必须停止。
您仍然可以在没有垃圾收集器的情况下使用 D(通过手动管理内存,如在 C/C++ 中) - 这将阻止您使用某些语言功能,如关联数组和内部分配内存而不释放/返回对它的引用的库函数. D 在许多不依赖于内存管理的领域(例如元编程)仍然表现出色。
实时更多的是关于保证而不是“实时”性能。因此,有两种可能性;