linux c测试?linux最好用的系统

大家好,今天给各位分享linux c测试的一些知识,其中也会对linux最好用的系统进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

linux中利用UnixBench进行性能测试

UnixBench是一款开源的测试 unix系统基本性能的工具,是比较通用的测试VPS性能的工具. UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器.

   UnixBench是一个类unix系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算、C库等系统基准性能提供测试数据。

最新版本UnixBench5.1.3,包含system和graphic测试,如果你需要测试graphic,则需要修改Makefile,不要注释掉”GRAPHIC_TESTS= defined”,同时需要系统提供x11perf命令gl_glibs库。

   下面的脚本使用了最新版UnixBench5.1.3来测试,注释了关于graphic的测试项(大多数VPS都是没有显卡或者是集显,所以图像性能无需测试),运行10-30分钟后(根据CPU内核数量,运算时间不等)得出分数,越高越好。

测试方法:

wget

   chmod+x unixbench.sh

   ./unixbench.sh

或直接把下面代码保存成unixbench.sh

#!/bin/bash

   PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

   export PATH

   #===============================================================================================

   #  Description: Unixbench for Test

   #===============================================================================================

# Create new soft download dir

   mkdir-p/opt/unixbench;

   cd/opt/unixbench;

# Download UnixBench5.1.3

   if [-s UnixBench5.1.3.tgz ]; then

     echo"UnixBench5.1.3.tgz [found]"

   else

    echo"UnixBench5.1.3.tgz not found!!!download now......"

    if! wget-c

    echo"Failed to download UnixBench5.1.3.tgz,please download it to"/opt/unixbench" directory manually and rerun the install script."

    exit 1

    fi

   fi

   tar-xzf UnixBench5.1.3.tgz;

   cd UnixBench;

yum-y install gcc gcc-c autoconf gcc-c++ time perl-Time-HiRes

#Run unixbench

   sed-i"s/GRAPHIC_TESTS= defined/#GRAPHIC_TESTS= defined/g"./Makefile

   make;

   ./Run;

echo'';

   echo'';

   echo'';

   echo"======= Script description and score comparison completed!=======";

   echo'';

   echo'';

   echo'';

测试项目:

   Dhrystone 2 using register variables

   此项用于测试 string handling,因为没有浮点操作,所以深受软件和硬件设计(hardware and software design)、编译和链接(compiler and linker options)、代码优化(code optimazaton)、对内存的cache(cache memory)、等待状态(wait states)、整数数据类型(integer data types)的影响。

Double-Precision Whetstone

   这一项测试浮点数操作的速度和效率。这一测试包括几个模块,每个模块都包括一组用于科学计算的操作。覆盖面很广的一系列 c函数:sin,cos,sqrt,exp,log被用于整数和浮点数的数学运算、数组访问、条件分支(conditional branch)和程序调用。此测试同时测试了整数和浮点数算术运算。

Execl Throughput

   此测试考察每秒钟可以执行的 execl系统调用的次数。 execl系统调用是 exec函数族的一员。它和其他一些与之相似的命令一样是 execve()函数的前端。

File copy

   测试从一个文件向另外一个文件传输数据的速率。每次测试使用不同大小的缓冲区。这一针对文件 read、write、copy操作的测试统计规定时间(默认是 10s)内的文件 read、write、copy操作次数。

Pipe Throughput

   管道(pipe)是进程间交流的最简单方式,这里的 Pipe throughtput指的是一秒钟内一个进程可以向一个管道写 512字节数据然后再读回的次数。需要注意的是,pipe throughtput在实际编程中没有对应的真实存在。

Pipe-based Context Switching

   这个测试两个进程(每秒钟)通过一个管道交换一个不断增长的整数的次数。这一点很向现实编程中的一些应用,这个测试程序首先创建一个子进程,再和这个子进程进行双向的管道传输。

Process Creation

   测试每秒钟一个进程可以创建子进程然后收回子进程的次数(子进程一定立即退出)。process creation的关注点是新进程进程控制块(process control block)的创建和内存分配,即一针见血地关注内存带宽。一般说来,这个测试被用于对操作系统进程创建这一系统调用的不同实现的比较。

System Call Overhead

   测试进入和离开操作系统内核的代价,即一次系统调用的代价。它利用一个反复地调用 getpid函数的小程序达到此目的。

Shell Scripts

   测试一秒钟内一个进程可以并发地开始一个 shell脚本的 n个拷贝的次数,n一般取值 1,2,4,8。(我在测试时取 1, 8)。这个脚本对一个数据文件进行一系列的变形操作(transformation)。

下面是我的一个512MB,2核,OpenVZ的VPS的跑分结果:

BYTE UNIX Benchmarks(Version 5.1.3)

System: vpn: GNU/Linux

OS: GNU/Linux-- 2.6.32-042stab076.8--#1 SMP Tue May 14 20:38:14 MSK 2013

Machine: i686(i386)

Language: en_US.utf8(charmap="UTF-8", collate="UTF-8")

CPU 0: Intel(R) Xeon(R) CPU L5520@ 2.27GHz(4533.6 bogomips)

     Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization

CPU 1: Intel(R) Xeon(R) CPU L5520@ 2.27GHz(4533.6 bogomips)

     Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization

09:41:17 up 31 days, 9:21, 1 user, load average: 0.23, 0.05, 0.02; runlevel 3

------------------------------------------------------------------------

   Benchmark Run: Mon Jul 29 2013 09:41:17- 10:09:29

   2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables      17172222.3 lps  (10.0 s, 7 samples)

   Double-Precision Whetstone                    2600.2 MWIPS(10.0 s, 7 samples)

   Execl Throughput      4152.8 lps  (30.0 s, 2 samples)

   File Copy 1024 bufsize 2000 maxblocks       622759.5 KBps (30.0 s, 2 samples)

   File Copy 256 bufsize 500 maxblocks         172634.3 KBps (30.0 s, 2 samples)

   File Copy 4096 bufsize 8000 maxblocks      1218236.9 KBps (30.0 s, 2 samples)

   Pipe Throughput    1416230.5 lps  (10.0 s, 7 samples)

   Pipe-based Context Switching                206509.4 lps  (10.0 s, 7 samples)

   Process Creation      8568.6 lps  (30.0 s, 2 samples)

   Shell Scripts(1 concurrent)                  3145.9 lpm  (60.0 s, 2 samples)

   Shell Scripts(8 concurrent)                   528.3 lpm  (60.0 s, 2 samples)

   System Call Overhead1528474.7 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT   INDEX

   Dhrystone 2 using register variables        116700.0  17172222.3  1471.5

   Double-Precision Whetstone                      55.0      2600.2   472.8

   Execl Throughput        43.0      4152.8   965.8

   File Copy 1024 bufsize 2000 maxblocks         3960.0    622759.5  1572.6

   File Copy 256 bufsize 500 maxblocks           1655.0    172634.3  1043.1

   File Copy 4096 bufsize 8000 maxblocks         5800.0   1218236.9  2100.4

   Pipe Throughput      12440.0   1416230.5  1138.4

   Pipe-based Context Switching                  4000.0    206509.4   516.3

   Process Creation       126.0      8568.6   680.0

   Shell Scripts(1 concurrent)                    42.4      3145.9   742.0

   Shell Scripts(8 concurrent)                     6.0       528.3   880.5

   System Call Overhead 15000.0   1528474.7  1019.0

      ========

   System Benchmarks Index Score                960.4

------------------------------------------------------------------------

   Benchmark Run: Mon Jul 29 2013 10:09:29- 10:39:56

   2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables      16851634.7 lps  (10.0 s, 7 samples)

   Double-Precision Whetstone                    5182.9 MWIPS(10.0 s, 7 samples)

   Execl Throughput      4101.9 lps  (30.0 s, 2 samples)

   File Copy 1024 bufsize 2000 maxblocks       635244.9 KBps (30.0 s, 2 samples)

   File Copy 256 bufsize 500 maxblocks         174430.2 KBps (30.0 s, 2 samples)

   File Copy 4096 bufsize 8000 maxblocks      1219982.0 KBps (30.0 s, 2 samples)

   Pipe Throughput    1387297.9 lps  (10.0 s, 7 samples)

   Pipe-based Context Switching                196296.1 lps  (10.0 s, 7 samples)

   Process Creation     10889.9 lps  (30.0 s, 2 samples)

   Shell Scripts(1 concurrent)                  4073.7 lpm  (60.0 s, 2 samples)

   Shell Scripts(8 concurrent)                   550.5 lpm  (60.2 s, 2 samples)

   System Call Overhead1538517.4 lps  (10.0 s, 7 samples)

System Benchmarks Index Values              BASELINE      RESULT   INDEX

   Dhrystone 2 using register variables        116700.0  16851634.7  1444.0

   Double-Precision Whetstone                      55.0      5182.9   942.3

   Execl Throughput        43.0      4101.9   953.9

   File Copy 1024 bufsize 2000 maxblocks         3960.0    635244.9  1604.2

   File Copy 256 bufsize 500 maxblocks           1655.0    174430.2  1054.0

   File Copy 4096 bufsize 8000 maxblocks         5800.0   1219982.0  2103.4

   Pipe Throughput      12440.0   1387297.9  1115.2

   Pipe-based Context Switching                  4000.0    196296.1   490.7

   Process Creation       126.0     10889.9   864.3

   Shell Scripts(1 concurrent)                    42.4      4073.7   960.8

   Shell Scripts(8 concurrent)                     6.0       550.5   917.5

   System Call Overhead 15000.0   1538517.4  1025.7

      ========

   System Benchmarks Index Score

在Linux下用C语言编程

4。守护进程的创建

如果你在DOS时代编写过程序,那么你也许知道在DOS下为了编写一个常驻内存的程序我们要编写多少代码了.相反如果在Linux下编写一个"常驻内存"的程序却是很容易的.我们只要几行代码就可以做到.实际上由于Linux是多任务操作系统,我们就是不编写代码也可以把一个程序放到后台去执行的.我们只要在命令后面加上&符号SHELL就会把我们的程序放到后台去运行的.这里我们"开发"一个后台检查邮件的程序.这个程序每个一个指定的时间回去检查我们的邮箱,如果发现我们有邮件了,会不断的报警(通过机箱上的小喇叭来发出声音).后面有这个函数的加强版本加强版本

后台进程的创建思想:首先父进程创建一个子进程.然后子进程杀死父进程(是不是很无情?).信号处理所有的工作由子进程来处理.

#include

#include

#include

#include

#include

#include

#include

/* Linux的默任个人的邮箱地址是/var/spool/mail/用户的登录名*/

#define MAIL"/var/spool/mail/hoyt"

/*睡眠10秒钟*/

#define SLEEP_TIME 10

main(void)

{

pid_t child;

if((child=fork())==-1)

{

printf("Fork Error:%s\n",strerror(errno));

exit(1);

}

else if(child>0)

while(1);

if(kill(getppid(),SIGTERM)==-1)

{

printf("Kill Parent Error:%s\n",strerror(errno));

exit(1);

}

{

int mailfd;

while(1)

{

if((mailfd=open(MAIL,O_RDONLY))!=-1)

{

fprintf(stderr,"%s","\007");

close(mailfd);

}

sleep(SLEEP_TIME);

}

}

}

你可以在默认的路径下创建你的邮箱文件,然后测试一下这个程序.当然这个程序还有很多地方要改善的.我们后面会对这个小程序改善的,再看我的改善之前你可以尝试自己改善一下.比如让用户指定邮相的路径和睡眠时间等等.相信自己可以做到的.动手吧,勇敢的探险者.

好了进程一节的内容我们就先学到这里了.进程是一个非常重要的概念,许多的程序都会用子进程.创建一个子进程是每一个程序员的基本要求!

LinuxC代码快速检测IP是否连接linuxc代码

linux基本操作命令?

linux系统中操作指令大全有哪些呢?下面是具体介绍:

linux系统中操作指令有很多,最常用操作指令是:cd命令、cd命令、grep命令、find命令、cp命令、mv命令、rm命令、ps命令、kill命令、killall命令、file命令、tar命令、cat命令、chgrp命令、chown命令、chmod命令、pwd命令、vim命令、gcc命令、time命令。

1、cd命令

这是一个非常基本,用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。

2、ls命令

这是一个非常有用的查看文件与目录的命令。

3、grep命令

该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等。

4、find命令

find是一个基于查找的功能非常强大的命令,相对而言,它的使用也相对较为复杂,参数也比较多。

5、cp命令

该命令用于复制文件,copy之意,它还可以把多个文件一次性地复制到一个目录下。

6、mv命令

该命令用于移动文件、目录或更名,move之意。

7、rm命令

该命令用于删除文件或目录,remove之间。

8、ps命令

该命令用于将某个时间点的进程运行情况选取下来并输出,process之意。

9、kill命令

该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用。

10、killall命令

该命令用于向一个命令启动的进程发送一个信号。

11、file命令

该命令用于判断接在file命令后的文件的基本数据。

12、tar命令

该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。

13、cat命令

该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据。

14、chgrp命令

该命令用于改变文件所属用户组。

15、chown命令

该命令用于改变文件的所有者,与chgrp命令的使用方法相同,只是修改的文件属性不同。

16、chmod命令

该命令用于改变文件的权限。

pwd命令

功能:显示当前所在的工作目录的绝对路径。

18、vim命令

该命令主要用于文本编辑,它接一个或多个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件。

19、gcc命令

对于一个用Linux开发C程序的人来说,这个命令就非常重要了,它用于把C语言的源程序文件,编译成可执行程序。

20、time命令

该命令用于测算一个命令(即程序)的执行时间。

linuxc都包含什么?

linux:库编辑器编译器都是分别安装的运用灵活windows:一般是集成开发环境,包含了上述东西c都有个标准库,那个是一样的,其他的就不一定一样了,linux下的库可以等你需要时再安装进系统,还有相关文档说明linux下有c++的其实linux下有个很强大的glibc库,他将c重新封装,直接可以用c进行面向对象的开发

c和linux的区别?

C和LinuxC基本上没有什么区别。

我们意义上的普通C,是标准ANSIC,是任何C编译器都应该遵循的C语言协议。

而LinuxC其实特指的是Linux上的GCC编译器,GCC编译器完全遵循ANSIC,并在此基础上又做了一些扩展,例如:

1)对ASM语法的支持

2)编译器支持内联函数

3)支持__attribute__机制

linux下C开发用什么开发工具?

linux一般不用集成开发黄静,像windows下的vsdevc++等集成开发工具

相对于windows,linux编辑器编译器等是独立的,所以可以先用vim编辑器写出cc++java等代码然后通过gccg++分别对c文件和cpp文件进行编译,这样就可以编译成可执行文件,或者动态链接库等等

所以linux开发大多数是用命令来执行操作的,也就是linux都是命令

什么是C语言和linux?

linux的是一操作系统,其本质是一系列的任务调度,内存管理,虚拟文件系统等算法的集合.它告诉你的计算机怎么充分利用你机器上的资源.linux内核的源代码是用C语言写的(源代码也见于pub.kernel.org).C语言是一门编程语言,其本质是把一些C语言关键词描述的算法转换为计算机可以直接运行的二进制机器语言的整体.想把C语言写成的代码编译成二进制机器语言要使用C编译器(Ccompiler),C编译器是一个软件,它可以把C语言写成的代码转换成机器可以执行的二进制文件.世界上有多款这样的软件,如gcc.linux内核及linux环境下可用的所有软件都是用gcc编译的.简而言之,linux是一个操作系统,是一个各种应用程序工作的环境.linux的内核,即这个操作系统的核心代码,是用c语言编写,并用gcc编译的.linux内核是一套描述系统工作方式的算法,C语言是其实现途径.C语言也可以用来编译其它的代码.

阅读剩余
THE END