问题标签 [d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 模板实例化膨胀在实践中何时重要?
似乎在静态编译的 C++ 和 D 语言中,模板元编程是一种流行的技术,对模板实例化膨胀有相当多的关注。在我看来,这主要是一个理论上的问题,除了资源非常有限的嵌入式系统。在嵌入式空间之外,我还没有听说过有人能够证明它在实践中是一个问题的例子。
任何人都可以在资源严重受限的嵌入式系统之外提供一个示例,说明模板实例化膨胀在实践中很重要并且具有可测量的、实际上显着的负面影响?
performance - 在 D 中实现低级库的建议(相对于 C/C++)
我需要一些关于为项目选择 D 编程语言的建议。该项目是一个低级库,类似于具有许多关联容器等的数据库。因此,效率对我来说非常重要。
我需要为该库提供一个 C API,以便与 C++ 和 Python 等其他语言兼容,并且我还预计某些部分可能需要用纯 C 编写以调整性能。
D 似乎对这份工作很有吸引力:考虑到这些要求,我应该注意哪些陷阱?D 容器的性能与 std::(map, vector, unordered_map, etc...) 相比如何,考虑到手动性能调整(例如使用 std::map::lower_bound 进行搜索/插入等)。
d - 是否有适用于 D 编程语言的游戏/图形引擎?
是否有适用于 D 编程语言的游戏/图形引擎?
iphone - D 编程 & iPhone
我刚刚开始学习“D 编程”。我想在 iPhone 上部署我的程序。这让我想知道;是否可以使用 D? 为 Mac 或 iPhone 开发?我希望应用程序完全编写为 D 或至少最少的 Objective-c。我是否通过选择 D 而不是其他主流语言 (c/c++/java/objective-c/c#) 开始了一场无望的战斗?
memory-management - 自旋锁是内存分配器的好选择吗?
我曾多次向 D 编程语言运行时的维护者建议内存分配器/垃圾收集器应该使用自旋锁而不是常规的操作系统临界区。这还没有真正流行起来。以下是我认为自旋锁会更好的原因:
- 至少在我所做的综合基准测试中,当内存分配器/GC 锁发生争用时,它比操作系统关键部分快几倍。编辑:根据经验,在单核环境中使用自旋锁甚至没有可测量的开销,可能是因为锁需要在内存分配器中保持如此短的时间。
- 内存分配和类似操作通常只占用时间片的一小部分,甚至是上下文切换所需时间的一小部分,这使得在争用情况下进行上下文切换变得很愚蠢。
- 无论如何,有问题的实现中的垃圾收集会阻止世界。收集期间不会有任何旋转。
是否有充分的理由不在内存分配器/垃圾收集器实现中使用自旋锁?
d - D语言的最佳资源在哪里?
D语言的最佳资源在哪里?
api - 详细的 Valgrind 内部文档
我正在考虑为 Valgrind 的客户端请求 API 创建一个 D 接口。通过研究头文件和反编译的东西,我最终可以弄清楚它在做什么,但我想知道它们是否是关于事情如何工作的权威文档?(顺便说一句,我已经找到了这个文件,但它没有足够的信息)
我正在寻找的将回答以下问题:如何生成宏来包装/调用返回 32 位机器字并采用 64 位浮点数的函数?
multithreading - 线程本地,类实例本地存储?
有没有一种很好的、与平台无关的方法来实现一个对线程和类实例都是本地的变量,即如果你有 T 线程和 I 类实例,你有那个变量的 TxI 实例?我使用的是 D 编程语言,版本 2,但一个与语言无关的良好答案也会很有用。
以下是一些限制条件:
- 绝不能要求同步。这排除了将哈希表映射到作为成员变量的变量引用的线程 ID。
- 不能保留应该被垃圾收集的引用。这排除了由类实例索引的线程本地静态哈希表。
- 为了效率,初始化应该是惰性的。如果线程从不访问给定实例的变量,则永远不应该创建它。