【发布时间】:2011-01-15 21:21:19
【问题描述】:
我有一种心理抽搐,这让我不愿意在 C 和 C++ 等低级语言中使用大型库(如 GLib 或 Boost)。在我看来,我认为:
嗯,这个图书馆有成千上万 投入了工时,而且一直 由知识渊博的人创造 关于语言比我以往任何时候都更重要。 他们的作者和粉丝说 库快速可靠, 而且功能看起来真的 有用,它肯定会阻止我 来自(严重)重新发明轮子。
但是该死的,我永远不会使用 该库中的每个函数。它是 太大了,可能会变得臃肿 这些年来;这是另一个球 并链接我的程序需要拖动。
Torvalds rant(尽管颇有争议)也让我不放心。
我的想法有什么根据,还是我只是不合理和/或无知?即使我只使用大型库的一两个功能,通过链接到该库是否会产生运行时性能开销?
我确信这也取决于具体的库是什么,但我通常想知道大型库是否会在技术层面上固有地引入低效率。
当我没有技术知识来判断我是否正确时,我已经厌倦了痴迷、喃喃自语和担心。
请让我摆脱痛苦!
【问题讨论】:
-
这是其中之一“从技术上讲,答案是'不!',但是......等等......等等”,我建议你把它写成一个 CW 帖子。
-
我不能代表 GLib,但将 Boost 视为 STL。你说“太大”;按照什么尺度?没有全球“太大”的规模。 STL 是不是太大了?你有什么依据说Boost会变得臃肿?为什么它甚至重要?听起来像是在寻找不存在问题的问题。
-
“它太大了,多年来它可能变得臃肿” - 很多臃肿是错误修复,你的新的小代码不会有。如果您不在乎结果是否正确,那么我为您准备了一个 O(1) 算法。
-
Torvalds 咆哮更多地与 C++ 与 C 相比,而不是 STL(可能被误用,但汇编也可能)太大。
-
为什么要制作这个 CW?这是一个完全有效的问题,并且可以有好的和坏的答案。为什么一个好的答案不应该赢得作者代表?对这个问题的一个好的回答难道不是显示知识、乐于助人以及对 SO 的贡献吗?为答案没有价值的问题保留 CW,其中一个答案与另一个答案一样好(主要是民意调查问题或幽默主题)
标签: c++ c performance boost glib