易截截图软件、单文件、免安装、纯绿色、仅160KB

linux读写文件速度测试

一. 文件一次读入速度
linux下读文件这东西最后都是要通过系统调用sys_read(fd,buf,count)来实现的,所以如果要提高速度,就是最简单地调用sys_read的封装,比如直接用read()或fread()。下面是我在linux下的几个测试。
首先创建一个130M数据文件 dd if=/dev/zero of=data bs=1024k count=130
[dd if=/dev/zero of=data bs=1024k count=130 转换和拷贝文件,从输入if的源往of的目的地址拷贝,每个block1024k,一共拷贝130个。]
分别用fread,read和fgets一次读入全部大小文件所消耗时间对比,其中
size=130*1024*1024
char *buf=new char[size];
下面是测试结果(机器Intel(R) Pentium(R) 4 CPU 3.20GHz, Mem 1G):
1.fread(buf,size,1,fp)一次读入
real    0m0.187s
user    0m0.000s
sys     0m0.180s
2.read(fdin,(void *)buf,size)一次读入
real    0m0.187s
user    0m0.000s
sys     0m0.184s
3.多次fgets(buf,size,fp),每次1k
real    0m0.356s
user    0m0.136s
sys     0m0.220s
4.fgets(buf,size,fp)一次读入
real    0m0.305s
user    0m0.072s
sys     0m0.232s
上面看到越简单的函数(read()和fread()),速度越快,其他的输入封装函数只不过是为了方便满足特殊需要,并不见得读的速度会很快。对于3和 4,因为在sys_read()内部有对读入大小的判断和while循环,所以大文件读取也没必要像3那样分多次调用fgets()来读文件.
另外用mmap()内存映射来读入文件的时间如下:
real    0m0.231s
user    0m0.068s
sys     0m0.164s
也并没有比直接read()快,网上找到一种解释是对于需要频繁读写操作的,mmap效率才会显著提高。下面来模拟频繁读写操作。
二. 文件频繁读写速度测试
1. 这一个测试模拟频繁文件读写操作,500M大小的数据文件data.in,每次从中读入1k个字节对每个字节做加1简单计算,再写到另一个文件data.out中。
//mmapx1.c
#define size 1024*1024*500
#define LEN 1024
#include <stdio.h>
int main()
{
    FILE *fp1,*fp2;
    char *buf=new char[LEN];
    int i,j;
&nb


相关文档:

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

在linux下如何把一个lvm的文件系统减小

在linux下如何把一个lvm的文件系统/home减到1G。比aix下麻烦,aix下直接把文件系统缩到某个值,对应的lv自动就减少了,不像linux要先缩小文件系统,再缩小lv。
suse1:~ # df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/system-root
5040 299 ......

Linux下Trac安装笔记

参考网址:
http://trac.edgewall.org/wiki/TracInstall
http://trac.edgewall.org/wiki/TracInstallPlatforms
http://trac.edgewall.org/wiki/TracOnRhel5
http://dag.wieers.com/rpm/FAQ.php#B
http://tech.idv2.com/2008/12/26/install-trac-on-linux/
软件下载地址:
trac:http://trac.edgewall.org/wiki/TracDo ......

使用Linux的rsync命令实现:多服务器镜像同步

  实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。
  ★方式一:
  一、服务器端(例:10.0.0.1*):
  1、创建用 ......

《Linux diff与patch的深入分析》

diff的输出格式分为传统格式和统一格式
1)diff的传统格式输出.
############################################
cat before.txt
输出:
This is a line to be deleted
This is a line that will be changed
This is a line that will be unchanged
cat after.txt
输出:
This is a line that has been changed
Thi ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号