好玩的问题太少。。。弄一个 先放100分(关键词: char[] std::string 性能 测试)

bing_huo 2005-04-21 10:03:55
题目:测试 字符数组 和 std::string 的性能差别
系统平台和开发环境:随意....
测试类别:拷贝 查找 连接 删除部分串 等等各个方面 随意发挥

给分标准:要求 给出使用的操作系统 和开发工具 版本 等信息 具体的性能差别 以某种操作 /固定次数的 时间差 或 时间比例形式。。。。。最好能给出测试程序的核心代码 部分 以及测试用数据的例子

基本按这些方面给分 如果反响好 继续开贴放分 反正几千的可用分不知道干嘛。。。。。嘿嘿

大家支持一下哦~~~~
...全文
365 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
MagicCarmack 2005-04-23
  • 打赏
  • 举报
回复
S T L作为C++ 的一个新部分,仍然受到不成熟实现的损害。在使用
S T L的不同实现或使用不同数据结构时,导致的性能变化是不可预测的。

《程序设计实践》讨论过这个问题的!
useresu 2005-04-23
  • 打赏
  • 举报
回复
up下,觉得应该差不了很多吧,
要不然怎么是标准,但是测试却不懂
ycom__net 2005-04-23
  • 打赏
  • 举报
回复
mark!
antter 2005-04-23
  • 打赏
  • 举报
回复
用低微的效率损失换来“重用性,可靠性,健壮性,扩展性”是非常明智的。
yunlang2233187 2005-04-22
  • 打赏
  • 举报
回复
学习
bing_huo 2005-04-22
  • 打赏
  • 举报
回复
哦? 请楼上给出原贴地址?? 我只是偶尔想到的 如果有现成的最好了~
pcboyxhy 2005-04-22
  • 打赏
  • 举报
回复
忽然屋顶瓦片响动,偶从草榻上一跃而起,低声喝问:“谁?!”屋顶有人答道:“阁下
请出来说话。”偶飞身跃入院中,但见屋脊上站立一人,打扮颇为怪异,似是异邦之人。
背负一口长剑,剑柄镶了一颗极大的珠子,月光之下发出幽幽绿光。偶心头一凛,想起一
人,拱手道:“原来是还珠楼主,楼主久不到中原,不知今日所来为何?”还珠楼主却不
答话,一扬手,一道白光直射下来,偶不敢怠慢,侧身让过,卸了暗器飞来之势,探手将
暗器接住,却是一张纸。还珠楼主一笑:“今日特来发帖。”偶再看那张纸,虽是好纸,
却已发黄,上写道:“恭请阁下于猴年马月猪日羊时参加英雄会”。再一想,那猴年马月
已是三年之前了。偶不禁冷笑道:“楼主,这帖子未免也太老了吧?”
dongpy 2005-04-22
  • 打赏
  • 举报
回复
关注
beyondtkl 2005-04-22
  • 打赏
  • 举报
回复
gz
277894613 2005-04-22
  • 打赏
  • 举报
回复
推荐string!!!
bing_huo 2005-04-22
  • 打赏
  • 举报
回复
因为现在很多书籍都推荐使用 std::string 甚至 std::vector<char> 来代替 char[] 但是项目中有部分人 坚持认为 string 性能要低很多 拒绝使用 所以想了解一下 具体的性能差距能到多少 自己测呢 也只是一个库 一种平台 还不一定测的全面。。。。另外。。。n多可用分 放那也没利息 。。。嘿嘿。。。。。

string底层是不是用了 ref count 看具体库的实现了 。。有的是 有的不是 部分库可以通过宏来关掉ref count因为ref count在多线程的情况下 会出问题~~~:)

期待更多测试结果~~~~
diandian82 2005-04-22
  • 打赏
  • 举报
回复
越高级的东西当然效率会下降一点,但少处理点指针问题会是你的程序更健壮,推荐string
taozi1064 2005-04-22
  • 打赏
  • 举报
回复
支持
zengwujun 2005-04-22
  • 打赏
  • 举报
回复
支持
ysbcg 2005-04-22
  • 打赏
  • 举报
回复
//p3 933 256M
//win2k sp4 vc6
//用时三分十五秒
#include <iostream>
#include <string>
using namespace std;
const static unsigned long length=65536*32;
int main() {
char *a=new char[length+1];
char *str="0123456789ABCDEF";
strcpy(a,str);
while(strlen(a)<length) {
strcat(a,str);
}
//cout<<a<<endl;
delete[] a;
return 0;
}
xsp919 2005-04-22
  • 打赏
  • 举报
回复
up
guyaguya 2005-04-22
  • 打赏
  • 举报
回复
对啊
string中用
char * c_str这个成员变量吧
听海拉拉 2005-04-22
  • 打赏
  • 举报
回复
up
积木 2005-04-22
  • 打赏
  • 举报
回复
string ,这个东西在存储实现的时候用的也是char[] 吧。
qiqi162002 2005-04-22
  • 打赏
  • 举报
回复
楼主想干麻?难道自己有一个,更好的,性能更佳的,想入住标准.能进入标准的,在性能和通用性上,一定是得过顶级科学家的测试的.
标准库中的string应该采用引用计数的,最好也要测一下"写时复制",只用大量的复制,和删除应该会得出它很高效的结果.
加载更多回复(9)

64,644

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧