Archive for 九月, 2009

LINUX ERROR CODE

星期四, 九月 24th, 2009

124 EMEDIUMTYPE Wrong medium type 123 ENOMEDIUM No medium found 122 EDQUOT Disk quota exceeded 121 EREMOTEIO Remote I/O error 120 EISNAM ...

linux管道效率测试

星期三, 九月 23rd, 2009

管道效率测试 管道技术是Linux的一种基本的进程间通信技术。 由于不产生中间文件,效率会更好一些。 下面以字符集转化为例测试实际中管道对效率的提升 实现目标: 1,将文件0_gbk.dat由gbk转化为utf8 2,将前一步的文件从utf8转化为gbk 例一,不使用管道 [oracle@dw_testdb sunwg]$ time iconv -f gbk -t utf8 0_gbk.dat > 0_utf8.dat real 0m50.347s user 0m14.114s sys 0m5.433s [oracle@dw_testdb sunwg]$ time iconv -t gbk -f utf8 0_utf8.dat > 1_gbk.dat real 0m53.732s user 0m13.147s sys 0m5.167s total= 50.347 + 53.732 ...

GNU的调试工具gdb

星期二, 九月 22nd, 2009

写代码的时候如果没有个好用的调试工具,那简直就是种折磨。 gdb就是这样的一个好工具,帮助你提高效率的好工作。 下面通过个小例子来介绍下gdb的简单知识。 sunwg.c ------------- #include int main() { int a=0; a++; a++; printf("%d\n",a); return 1; } 创建个简单的c程序sunwg.c。 要想通过gdb来调试程序,那么在编译c程序的时候一定要加入调式信息。 $ gcc -g -o sunwg sunwg.c -g就是告诉编译器要增加调试信息 下面开始调试程序 $ gdb sunwg GNU gdb Red Hat Linux (6.3.0.0-1.153.el4rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" ...

字符集转化工具convert_code v0.1

星期一, 九月 21st, 2009

数据仓库中的数据来源比较多,而且数据中的噪音也比较多。 关于字符集就比较混乱,常常GBK的数据中会混有其他字符集的数据。 这样在向GP或其他数据库中导入的过程中可能就会因为字符集不匹配而产生导入错误。 所以就需要可能会文本文件进行字符集的转化或者替换,可以让转换文件字符集,除去文件中的噪音字符。 convert_code有两种转化模式,一是file级别,二是byte级别。 file级别:调用系统命令iconv转化整个文件,速度快,要求文件中不能存在噪音字符 byte级别:调用函数iconv以字节为单位转化,速度比file慢一些,但是可以过滤掉噪音字符,保证转换成功 在使用中还是用byte的情况多一些,毕竟很难保证文件中不存在非法的噪音字符。 在我们的测试环境上,使用byte的使用转化速度还可以,可以达到25M/S。 由于代码比较长,仅贴出gbk到utf8的转化工作,其他类似: int gbk_utf8_byte(char in_file[100],char out_file[100],char log_file[100]) { FILE *fp_in; FILE *fp_out; FILE *fp_log; iconv_t cd; unsigned char sh; char *out; char *in; unsigned char buffer[10]; ...

gcc的优化选项测试

星期二, 九月 15th, 2009

[oracle@dw_testdb sunwg]$ gcc -O2 -Wall -o convert_code convert_code.c [oracle@dw_testdb sunwg]$ time ./convert_code from_code=gbk to_code=gbk in_file=0.dat out_file=0_gbk_1.dat convert_type=byte real 3m4.633s user 2m36.525s sys 0m6.121s [oracle@dw_testdb sunwg]$ gcc -O1 -Wall -o convert_code convert_code.c [oracle@dw_testdb sunwg]$ time ./convert_code from_code=gbk to_code=gbk in_file=0.dat out_file=0_gbk_1.dat convert_type=byte real 1m15.513s user ...

Page 1 of 212»