当前位置: 首页 > 面试题库 >

由于性能原因,我们必须使用C

司徒志强
2023-03-14
问题内容

在这个多语言的时代,似乎每一种任务都使用一种出色的语言,我发现自己在专业上一直在努力反对“ 只有C快 ” 的口号,“
”实际上是指“足够快”。我与非常理性的人合作,他们喜欢比较数字,而我所拥有的只是思想和观点。您能帮我找到摆脱主观意见并进入“现实世界”的方法吗?

您是否可以帮助我找到有关是否可以将任何其他语言用于嵌入式和(Linux)系统编程的研究?我很可能会推一个错误的假设,并且非常感谢研究向我展示了这一点。您能否链接或包括好的数字,以使“仅是他/她的意见”的注释保持在最低限度。

这些是我的特殊要求

  • 记忆不是一个严重的限制
  • 便携性不是一个严重的问题
  • 这不是一个实时系统

问题答案:

“除了C足够快之外,什么都没有[足够]”是一个早期优化,并且由于早期优化是错误的所有原因而出错。如果您的系统具有足够的复杂度,而不希望使用C以外的东西,那么系统的某些部分必须“足够快”,而某些部分的约束要轻一些。例如,如果使用Python编写代码,将使项目更快地完成,并且错误更少,那么您可以采用一些C或汇编代码来加快对时间要求严格的部分的速度。

即使事实证明整个代码必须用C或汇编语言编写才能满足性能要求,使用Python之类的语言进行原型设计也可以带来真正的好处。您可以使用可以使用的Python原型,并逐步用C代码替换部件,直到达到必要的性能

因此,使用可以使您最正确,最快速地完成开发工作的工具,然后使用实际数据来确定需要优化的地方。也许C是最合适的工具,即使在嵌入式系统中,有时(但不一定总是)开始。



 类似资料:
  • 对于命令和 如果我是对的: 如果我想从packagist向我的项目添加库,我需要使用 我有一个项目,我不想将其发布到https://packagist.org/ 我只想在我的项目中添加一些库。 在运行之前,是否必须运行? 我看了一个教程,其中他们使用命令,然后调用,这让我很困惑,因为我认为与在Packagist上发布库有关。

  • 我在一个数据帧中有许多列是标志“0”和“1”。当我导入数据帧时,它们属于类“整数”。 在所有列中,0表示不存在,1表示存在。 我需要将他们转换为fator吗?[因素将使水平1 我计划稍后使用xgboost构建一个预测模型。Xgboost只对数值列起作用,因此如果我将列转换为因子,则需要对它们进行热编码以将其转换为数值。 (附带问题:如果我们进行一次热编码以消除共线性,是否总是需要删除一列?)

  • C++20概念的一个特点是,在某些情况下,您必须编写。例如,[expr.prim.req]/3中的这个示例:

  • 本文向大家介绍kafka高性能原因是什么?相关面试题,主要包含被问及kafka高性能原因是什么?时的应答技巧和注意事项,需要的朋友参考一下 零拷贝、利用操作系统页缓存、磁盘顺序写 kafka零拷贝原理 分区、分段、建立索引 生产者、消费者批处理

  • 关于在最新版本的GCC和Clang中编译有几个问题:实验::filessystems链接器错误 但是现在< code>filesystem已经被c 17接受,所以不再需要< code>experimental或< code>-lstdc fs标志,对吗? 错了,我甚至不能 只给了我< code >实验版本,我怎么能包括正式接受的版本呢?

  • 在Websphere Application Sever8.5和RAD 8.5.1上尝试配置JMS队列连接工厂/激活规范时,我得到以下错误: