c++ - 什么东西便宜 : cast to int or Trim the strings in C++?

标签 c++ linux string casting int

我正在从 linux/proc fs 读取几个文件,我必须将这些值插入到数据库中。我应该尽可能优化。那么什么更便宜:

i) 将 then 转换为 int,同时将 then 存储在内存中,以便稍后在构建 INSERT 语句时再次转换为 string

ii) 或将它们保留为字符串,只是清理值(删除“:”、空格等...)

iii) 我应该考虑什么来学习做出这个决定?

我已经在排队了,因为他们来的顺序对我来说不够好。

谢谢,

佩德罗

编辑 - 澄清

抱歉,我的场景如下:我正在测量 CPU、内存、网络、磁盘等...每 10 秒一次。我们正在开发我们的数据库系统,所以除了 INSERT 语句之外,我不能指望任何东西。

我对这个优化很感兴趣,因为解析数据的频率。它会被写入一次 - 数据写入后将不会更新。

最佳答案

您似乎正在执行一些归档事件[一次写入,最多可能读取一次](存储数据库以供以后很少/不经常使用),如果没有,您应该将优化重点放在基于如何读取(而不是写入)数据。

如果这是存档情况,也许将 BLOB(二进制大对象,[或类似概念])插入数据库会更有效。

添加: 显然,这将取决于您将如何读取数据。您只是稍后列出数据以供浏览,还是会有更复杂的基于基准值的提取查询。 例如,如果您稍后要执行以下操作:SELECT * from db.Log WHERE log.time > time1 and Max (Memory) < 5000那么最好将每个数据保持其原始格式(整数中的 int,字符串中的字符串等),以便将主要数据处理留给 DB 服务器。

关于c++ - 什么东西便宜 : cast to int or Trim the strings in C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124210/

相关文章:

linux - 使用命令行用一个逗号替换连续的空格

c++ - 'var' 的存储大小未知

c++ - 使 Eclipse 将 .h 文件视为 C++?

c++ - 使用 CMake 构建 cpp-netlib

javascript - 如何使用 JavaScript 计算长字符串中多个子字符串的出现次数

c - 在c中添加到字符串末尾的额外字符

android - 哈希表和字符串值错误

c++ - 链接器提示找不到现有方法 (C++)

c - 查找进程 linux(C 代码)的打开文件描述符?

linux - 错误 : docker-engine-selinux conflicts with 2:container-selinux?