在linux下一个有趣的STL文件IO问题

在linux下读一个巨大的日志文件, 2.4G

用正文文件的方式打开, 一行一行的读

char achbuf[ 4096 ] ;

ifstream ifile( "/cygdrive/h/logs/zz/ex051117.log" ) ;

if ( !ifile ) {

cout << "error in opening" << endl ;
return -1 ;
}

int i ;

for( i = 0 ; !ifile.eof() ; i++ )
{
ifile.getline( achbuf , sizeof( achbuf ) - 1 ) ;
}
这个过程用了51秒

2.4G的文件用51秒, 47M每秒, 已经接近硬盘的最高速度了.

当时想做个尝试, 看看用二进制方式打开一次读入16M能否会更快.

char achbuf[ 4096 * 4096 ] ;
ifstream ifile( "file.log" , ios::in | ios::binary ) ;

if ( !ifile ) {

cout << "error in opening" << endl ;
return -1 ;
}

int i ;

for( i = 0 ; !ifile.eof() ; i++ )
{
ifile.read( achbuf , sizeof( achbuf ) ) ;
}
这个过程竟然用了96秒!!!!!!!!!!
到论坛请教了一下, co给出一个链接: Fast read of binary files that alternate type
试了试co推荐的文章里说的方法, 加了 ifile.imbue( std::locale::classic());, 结果为88秒, 有提高.
改用下面的代码读是54秒, 和第一个速度相近了
FILE *pfile ;

pfile = fopen( "file.log" , "rbS" ) ;

if ( pfile == NULL ) {

cout << "error in opening" << endl ;
return -1 ;
}

int i ;

for( i = 0 ; !feof( pfile ) ; i++ )
{
fread( achbuf, 1 , sizeof( achbuf ) , pfile ) ; //16M
}

fclose( pfile ) ;
刚开始学习stl,不太清楚stl文件io实现的内部机制, 不清楚为什么二进制和正文文件的读入速度差这么多.
有知道的请不吝赐教. 有能答疑解惑者,赠烤鸭一只smile_tongue

俺也来个梨花体

今天
在阿尔及利亚的WP
在MSN上和俺说
他在撒哈拉沙漠看到
一只
野狼

他命令
司机
开车去追
结果
不小心
压死了那支狼


懊悔

这事
让俺想起
当年

阿里的时候

岗仁波齐
的路上
看见
一群
黄羊
司机开车去追
俺们
很兴奋
不停的
照相
其他车上的旅友
看见了
痛骂俺们
“你们!!”
“想累死黄羊么!!”

醒悟
很是愧疚
旅友们拿着大炮
对着俺
狂拍
估计
是要加个
虐待动物元凶的标题
发到网站

以后
不会

追逐
野生
动物了

荒野中的生命
活的
不容易

不过
牛肉
我还是
要吃.
这算不算是
不尊重生命?
如果不吃
是不是

自己
生命的
不尊重?

想不明

今日美术馆苹果分馆开馆了

馆址就在原先的苹果社区售楼处,也就是北京啤酒厂原先的锅炉房里。现在里面正在办方力钧的画展(10月17号结束),他的作品里到处都是光头。我这个艺术盲看了一些, 有些特别的感觉,但说不出所以然。

下面的照片是从网易的新闻里盗用的(要贴的时候才想起,住在苹果这么久,居然没给这么个性的售楼处照照片)。

正门(这个建筑满特别,比起美术馆里的作品我更欣赏这个建筑,门口的设计给人特别的空间感,屋顶坐着的那排小人也给人说不出的特别感觉)

美术馆内景

行车指南(其实有点错误,从国贸桥走辅路的话就不用到双井掉头,可以直接过了铁路桥就掉头的。这张图是从baidu找的)

美术馆一层还有个书店,里头有不少有关艺术的书籍,主要是美术的,展现的风格大都是让我感觉怪怪的满特别的那种。

开业的时候去转了一圈,建筑里满是刚装修后的气味,刺激的眼睛直泛酸,不过感觉还是很值得看的,在这里向大家推荐一下。

从外国人的角度看现在的中国

国外电视台拍了大量关于中国的纪录片,大家不妨看看,其中不乏一些很有趣的视角。

 

日本NHK电视台拍了很多关于中国的记录短片, 大家可以从http://lib.verycd.com/2006/04/05/0000097387.html 和 http://lib.verycd.com/2005/08/08/0000059976.html 下载. 其中不只是有中国的, 还有关于朝鲜,印度,日本等中国邻国的纪录片, 看过其中的关于北朝鲜和中国的几集,材料翔实,观点公允。 而且他不是要强加给你什么观念, 而是大家一起来探讨。

 

小鱼今天推荐了BBC的《今日中国》,大家可以用BT下载,种子在http://www.doyj.com/downloads/bbs-china-today.zip.

 小鱼介绍如下:

BBC今年推出的一部反映中国20年来改革开放成就的片子。
中国——这个地球上最古老的东方国家,如今正以前所未有的速度向前发展。强大的经济实力、社会政治体系的迅速转型,“中国崛起”越来越成为一个世界性话题。
但是,成功发展的道路并非一帆风顺,中国逐渐面临越来越多的问题:庞大的人口基数、严峻的环境污染问题以及贫富不均。
共四集,拍的比较实际,也比较客观。
第一集:中国的民生民权状况及农村基层民主的发展.
第二集:中国农村妇女现状。
第三集:中国环境现状。
第四集:中国法制建设。

又到中秋

现在是凌晨4点45, 坐在窗口旁, 俯瞰着整个小区。路灯静静得亮着,远方的工地偶尔传来一些机械的声音,旁边闷闷的电脑风扇声。又一个中秋开始了。

测试用Writely 来写blog ,感觉不错。在线Office 2007的测试帐号没申请到,只好先用用google。已经越来越喜欢上google的线上软件,微软做的能有这么好么?

update: Writely写的blog还是有些问题, 标题是空的,更新后又生成一个新的post. 看来还是要先用微软的Live writer

Google发布了新的搜索引擎

http://www.searchmash.com 悄无声息的发布了,有一些有趣的新特性。用户可以移动搜索结果,搜索文字会同时搜索图像,搜索结果中暂时没有Adwords广告。 mash是麦芽汁的意思,但google发布这个搜索引擎是什么意思却让人琢磨不透。难道是为了试验由用户主动参与来改进搜索结果? 还是以后google一些新的搜索技术会先在这个引擎尝试?

免费拥抱

http://www.youtube.com/watch?v=vr3x_RRJdd4

前些天回廊坊,惊闻高中同学kz自杀了。听说他之前有抑郁症,生活上也不是太顺利。和xzy谈起的时候,他说如果我们早点知道,早点能帮助他,哪怕只是关心一下,恐怕都不会有这样的结局了。

今天刚好看到这段youtube上的视频,一个澳大利亚人Juan Mann, 在澳州悉尼闹区街头提供陌生人“免费拥抱” ,传达一种“快餐式情感”。曼恩说,这是让大家笑容绽开的一种方式,“因为只要有一个人跟我拥抱,就会带动从旁经过的五个路人脸上的微笑”。有人在评论里说:We all need touch. we all need connections。

下面是free hugs运动的简单说明:

Sometimes, a hug is all what we need. Free hugs is a real life controversial story of Juan Mann, A man whos sole mission was to reach out and hug a stranger to brighten up their lives.

In this age of social disconnectivity and lack of human contact, the effects of the Free Hugs campaign became phenomenal.

As this symbol of human hope spread accross the city, police and officials ordered the Free Hugs campaign BANNED. What we then witness is the true spirit of humanity come together in what can only be described as awe inspiring.

In the Spirit of the free hugs campaign, PASS THIS TO A FRIEND and HUG A STRANGER! After all, If you can reach just one person…

下面是里面的歌曲All The Same的歌词

Sick Puppies – All The Same Song Lyrics

 

I don’t mind where you come from

As long as you come to me

I don’t like illusions I can’t see

Them clearly

 

I don’t care no I wouldn’t dare

To fix the twist in you

You’ve shown me eventually

What you’ll do

 

I don’t mind…

I don’t care…

As long are you’re here

 

Go ahead tell me you’ll leave again

You’ll just come back running

Holding your scarred heart in hand

It’s all the same

And I’ll take you for who you are

If you take me for everything

Do it all over again

It’s all the same

 

Hours slide and days go by

Till you decide to come

And in between it always seems too long

All of a sudden

 

And I have the skill, yeah I have the will To breathe you in while I can However long you stay Is all that I am

 

I don’t mind…

I don’t care…

As long are you’re here

 

Go ahead tell me you’ll leave again

You’ll just come back running

Holding your scarred heart in hand

It’s all the same

And I’ll take you for who you are

If you take me for everything

Do it all over again

It’s always the same

 

Wrong or right

Black or white

If I close my eyes

I’s all the same

 

In my life

The compromise

I close my eyes

It’s all the same

 

Go ahead say it you’re leaving

You’ll just come back running

Holding your scarred heart in hand

It’s all the same

And I’ll take you for who you are

If you take me for everything

Do it all over again

It’s all the same