下载资源后端资源详情
lmbench-3.0-a9.zip
大小:507.61KB
价格:41积分
下载量:0
评分:
5.0
上传者:qq_36393978
更新日期:2025-09-22

lmbench-3.0

资源文件列表(大概)

文件名
大小
lmbench-3.0-a9/
-
lmbench-3.0-a9/.vscode/
-
lmbench-3.0-a9/.vscode/configurationCache.log
139B
lmbench-3.0-a9/.vscode/dryrun.log
202B
lmbench-3.0-a9/.vscode/settings.json
55B
lmbench-3.0-a9/.vscode/targets.log
222B
lmbench-3.0-a9/ACKNOWLEDGEMENTS
1.8KB
lmbench-3.0-a9/CHANGES
3.61KB
lmbench-3.0-a9/ChangeSet
-
lmbench-3.0-a9/COPYING
17.56KB
lmbench-3.0-a9/COPYING-2
5.59KB
lmbench-3.0-a9/doc/
-
lmbench-3.0-a9/doc/bargraph.1
3.57KB
lmbench-3.0-a9/doc/benchmarks
1.92KB
lmbench-3.0-a9/doc/bw_allmem.tbl
1.42KB
lmbench-3.0-a9/doc/bw_file_rd.8
1.85KB
lmbench-3.0-a9/doc/bw_ipc.tbl
1.07KB
lmbench-3.0-a9/doc/bw_mem.8
2.64KB
lmbench-3.0-a9/doc/bw_mem_rd.8
850B
lmbench-3.0-a9/doc/bw_mmap_rd.8
1.11KB
lmbench-3.0-a9/doc/bw_pipe.8
1.56KB
lmbench-3.0-a9/doc/bw_reread2.tbl
1.43KB
lmbench-3.0-a9/doc/bw_tcp.8
1.88KB
lmbench-3.0-a9/doc/bw_tcp.tbl
912B
lmbench-3.0-a9/doc/bw_unix.8
1.11KB
lmbench-3.0-a9/doc/cache.8
1.36KB
lmbench-3.0-a9/doc/ctx.pic
6.38KB
lmbench-3.0-a9/doc/ctx.tbl
1.52KB
lmbench-3.0-a9/doc/description.ms
21.54KB
lmbench-3.0-a9/doc/graph.1
3.04KB
lmbench-3.0-a9/doc/lat_allmem.tbl
1.34KB
lmbench-3.0-a9/doc/lat_allproc.tbl
1.42KB
lmbench-3.0-a9/doc/lat_connect.8
1.15KB
lmbench-3.0-a9/doc/lat_connect.tbl
686B
lmbench-3.0-a9/doc/lat_ctx.8
3.33KB
lmbench-3.0-a9/doc/lat_disk.tbl
328B
lmbench-3.0-a9/doc/lat_fcntl.8
840B
lmbench-3.0-a9/doc/lat_fifo.8
875B
lmbench-3.0-a9/doc/lat_fs.8
964B
lmbench-3.0-a9/doc/lat_fs.tbl
1.05KB
lmbench-3.0-a9/doc/lat_http.8
1.02KB
lmbench-3.0-a9/doc/lat_ipc.tbl
332B
lmbench-3.0-a9/doc/lat_mem_rd.8
3.42KB
lmbench-3.0-a9/doc/lat_mmap.8
1.09KB
lmbench-3.0-a9/doc/lat_nullsys.tbl
830B
lmbench-3.0-a9/doc/lat_ops.8
957B
lmbench-3.0-a9/doc/lat_pagefault.8
1.17KB
lmbench-3.0-a9/doc/lat_pipe.8
1KB
lmbench-3.0-a9/doc/lat_pipe.tbl
889B
lmbench-3.0-a9/doc/lat_proc.8
1.59KB
lmbench-3.0-a9/doc/lat_rpc.8
1.72KB
lmbench-3.0-a9/doc/lat_select.8
578B
lmbench-3.0-a9/doc/lat_sig.8
643B
lmbench-3.0-a9/doc/lat_signal.tbl
780B
lmbench-3.0-a9/doc/lat_syscall.8
1.42KB
lmbench-3.0-a9/doc/lat_tcp.8
1.28KB
lmbench-3.0-a9/doc/lat_tcp.tbl
1.09KB
lmbench-3.0-a9/doc/lat_udp.8
1.27KB
lmbench-3.0-a9/doc/lat_udp.tbl
1.03KB
lmbench-3.0-a9/doc/lat_unix.8
1.1KB
lmbench-3.0-a9/doc/lat_unix_connect.8
940B
lmbench-3.0-a9/doc/line.8
1.41KB
lmbench-3.0-a9/doc/lmbench.3
7.01KB
lmbench-3.0-a9/doc/lmbench.8
5.59KB
lmbench-3.0-a9/doc/lmbench3.ms
52.63KB
lmbench-3.0-a9/doc/lmbench3_arch.fig
4.11KB
lmbench-3.0-a9/doc/lmbench3_signals.fig
3.08KB
lmbench-3.0-a9/doc/lmdd.8
3.42KB
lmbench-3.0-a9/doc/Makefile
2.98KB
lmbench-3.0-a9/doc/mem.pic
113.68KB
lmbench-3.0-a9/doc/memhier-color.d
2.03KB
lmbench-3.0-a9/doc/memhier-line.d
633B
lmbench-3.0-a9/doc/memhier-tlb.d
5.08KB
lmbench-3.0-a9/doc/memhier.ms
53.69KB
lmbench-3.0-a9/doc/mhz.8
800B
lmbench-3.0-a9/doc/parallel.ms
10.67KB
lmbench-3.0-a9/doc/par_mem.8
2.66KB
lmbench-3.0-a9/doc/par_ops.8
1.1KB
lmbench-3.0-a9/doc/pgraph.1
3.65KB
lmbench-3.0-a9/doc/rccs.1
4.55KB
lmbench-3.0-a9/doc/refdbms.keys
183B
lmbench-3.0-a9/doc/references
6.49KB
lmbench-3.0-a9/doc/references-
6.29KB
lmbench-3.0-a9/doc/references-lmbench3
11.93KB
lmbench-3.0-a9/doc/references-memhier
7.8KB
lmbench-3.0-a9/doc/references-parallel
3.52KB
lmbench-3.0-a9/doc/references-userguide
9.87KB
lmbench-3.0-a9/doc/references.private
214B
lmbench-3.0-a9/doc/reporting.3
1.99KB
lmbench-3.0-a9/doc/results.3
2.1KB
lmbench-3.0-a9/doc/stream.8
595B
lmbench-3.0-a9/doc/timing.3
4.71KB
lmbench-3.0-a9/doc/tlb.8
1.59KB
lmbench-3.0-a9/doc/tmac.usenix
33.36KB
lmbench-3.0-a9/doc/usenix.ol
3.24KB
lmbench-3.0-a9/doc/usenix96.ms
74.8KB
lmbench-3.0-a9/doc/userguide.ms
139.21KB
lmbench-3.0-a9/hbench-REBUTTAL
9.7KB
lmbench-3.0-a9/Makefile
1.56KB
lmbench-3.0-a9/README
561B
lmbench-3.0-a9/results/
-
lmbench-3.0-a9/results/Makefile
9.63KB
lmbench-3.0-a9/scripts/
-
lmbench-3.0-a9/scripts/allctx
1.35KB
lmbench-3.0-a9/scripts/allmem
1.27KB
lmbench-3.0-a9/scripts/bargraph
8.76KB
lmbench-3.0-a9/scripts/bghtml
1.11KB
lmbench-3.0-a9/scripts/build
10.46KB
lmbench-3.0-a9/scripts/compiler
210B
lmbench-3.0-a9/scripts/config
103B
lmbench-3.0-a9/scripts/config-run
21.14KB
lmbench-3.0-a9/scripts/config-scaling
4.78KB
lmbench-3.0-a9/scripts/depend
667B
lmbench-3.0-a9/scripts/do_ctx
593B
lmbench-3.0-a9/scripts/getbg
21.12KB
lmbench-3.0-a9/scripts/getbw
5.14KB
lmbench-3.0-a9/scripts/getctx
1.57KB
lmbench-3.0-a9/scripts/getdisk
1.46KB
lmbench-3.0-a9/scripts/getlist
633B
lmbench-3.0-a9/scripts/getmax
1.51KB
lmbench-3.0-a9/scripts/getmem
1.38KB
lmbench-3.0-a9/scripts/getpercent
9.77KB
lmbench-3.0-a9/scripts/getresults
1.88KB
lmbench-3.0-a9/scripts/getsummary
26.85KB
lmbench-3.0-a9/scripts/gifs
855B
lmbench-3.0-a9/scripts/gnu-os
42KB
lmbench-3.0-a9/scripts/graph
22.49KB
lmbench-3.0-a9/scripts/html-list
3.14KB
lmbench-3.0-a9/scripts/html-man
1.49KB
lmbench-3.0-a9/scripts/info
99B
lmbench-3.0-a9/scripts/info-template
1.2KB
lmbench-3.0-a9/scripts/lmbench
11.77KB
lmbench-3.0-a9/scripts/make
301B
lmbench-3.0-a9/scripts/Makefile
68B
lmbench-3.0-a9/scripts/man2html
3.49KB
lmbench-3.0-a9/scripts/mkrelease
495B
lmbench-3.0-a9/scripts/new2oldctx
565B
lmbench-3.0-a9/scripts/opercent
2.11KB
lmbench-3.0-a9/scripts/os
470B
lmbench-3.0-a9/scripts/output
225B
lmbench-3.0-a9/scripts/percent
2.2KB
lmbench-3.0-a9/scripts/rccs
16.07KB
lmbench-3.0-a9/scripts/README
356B
lmbench-3.0-a9/scripts/results
631B
lmbench-3.0-a9/scripts/save
624B
lmbench-3.0-a9/scripts/SHIT
15.81KB
lmbench-3.0-a9/scripts/stats
1.02KB
lmbench-3.0-a9/scripts/statsummary
36.94KB
lmbench-3.0-a9/scripts/synchronize
1.71KB
lmbench-3.0-a9/scripts/target
604B
lmbench-3.0-a9/scripts/TODO
93B
lmbench-3.0-a9/scripts/version
374B
lmbench-3.0-a9/scripts/xroff
118B
lmbench-3.0-a9/src/
-
lmbench-3.0-a9/src/bench.h
8.16KB
lmbench-3.0-a9/src/busy.c
88B
lmbench-3.0-a9/src/bw_file_rd.c
3.96KB
lmbench-3.0-a9/src/bw_mem.c
13.25KB
lmbench-3.0-a9/src/bw_mmap_rd.c
4.3KB
lmbench-3.0-a9/src/bw_pipe.c
3.82KB
lmbench-3.0-a9/src/bw_tcp.c
5.13KB
lmbench-3.0-a9/src/bw_udp.c
4.39KB
lmbench-3.0-a9/src/bw_unix.c
4.08KB
lmbench-3.0-a9/src/cache.c
19.37KB
lmbench-3.0-a9/src/clock.c
565B
lmbench-3.0-a9/src/disk.c
5.92KB
lmbench-3.0-a9/src/enough.c
177B
lmbench-3.0-a9/src/flushdisk.c
523B
lmbench-3.0-a9/src/getopt.c
3.2KB
lmbench-3.0-a9/src/hello.c
80B
lmbench-3.0-a9/src/lat_cmd.c
2.1KB
lmbench-3.0-a9/src/lat_connect.c
2.56KB
lmbench-3.0-a9/src/lat_ctx.c
7.72KB
lmbench-3.0-a9/src/lat_dram_page.c
4.49KB
lmbench-3.0-a9/src/lat_fcntl.c
4.3KB
lmbench-3.0-a9/src/lat_fifo.c
3.29KB
lmbench-3.0-a9/src/lat_fs.c
6.1KB
lmbench-3.0-a9/src/lat_http.c
2.33KB
lmbench-3.0-a9/src/lat_mem_rd.c
3.74KB
lmbench-3.0-a9/src/lat_mmap.c
3.7KB
lmbench-3.0-a9/src/lat_ops.c
12.21KB
lmbench-3.0-a9/src/lat_pagefault.c
4.43KB
lmbench-3.0-a9/src/lat_pipe.c
2.96KB
lmbench-3.0-a9/src/lat_pmake.c
3.72KB
lmbench-3.0-a9/src/lat_proc.c
3.83KB
lmbench-3.0-a9/src/lat_rand.c
2.56KB
lmbench-3.0-a9/src/lat_rpc.c
5.92KB
lmbench-3.0-a9/src/lat_select.c
4.37KB
lmbench-3.0-a9/src/lat_sem.c
3.04KB
lmbench-3.0-a9/src/lat_sig.c
4.39KB
lmbench-3.0-a9/src/lat_syscall.c
3.58KB
lmbench-3.0-a9/src/lat_tcp.c
3.51KB
lmbench-3.0-a9/src/lat_udp.c
4.24KB
lmbench-3.0-a9/src/lat_unix.c
2.8KB
lmbench-3.0-a9/src/lat_unix_connect.c
2.08KB
lmbench-3.0-a9/src/lat_usleep.c
6.11KB
lmbench-3.0-a9/src/lib_debug.c
3.2KB
lmbench-3.0-a9/src/lib_debug.h
260B
lmbench-3.0-a9/src/lib_mem.c
18.25KB
lmbench-3.0-a9/src/lib_mem.h
1.77KB
lmbench-3.0-a9/src/lib_sched.c
6.06KB
lmbench-3.0-a9/src/lib_stats.c
11.69KB
lmbench-3.0-a9/src/lib_tcp.c
4.99KB
lmbench-3.0-a9/src/lib_tcp.h
320B
lmbench-3.0-a9/src/lib_timing.c
38.14KB
lmbench-3.0-a9/src/lib_udp.c
1.91KB
lmbench-3.0-a9/src/lib_udp.h
293B
lmbench-3.0-a9/src/lib_unix.c
1.64KB
lmbench-3.0-a9/src/lib_unix.h
189B
lmbench-3.0-a9/src/line.c
1.45KB
lmbench-3.0-a9/src/lmdd.1
3.11KB
lmbench-3.0-a9/src/lmdd.c
18.08KB
lmbench-3.0-a9/src/lmhttp.c
7.94KB
lmbench-3.0-a9/src/loop_o.c
81B
lmbench-3.0-a9/src/Makefile
19.12KB
lmbench-3.0-a9/src/memsize.c
3.74KB
lmbench-3.0-a9/src/mhz.c
13.9KB
lmbench-3.0-a9/src/msleep.c
327B
lmbench-3.0-a9/src/names.h
6.15KB
lmbench-3.0-a9/src/par_mem.c
1.76KB
lmbench-3.0-a9/src/par_ops.c
12.99KB
lmbench-3.0-a9/src/rhttp.c
2.68KB
lmbench-3.0-a9/src/seek.c
1.03KB
lmbench-3.0-a9/src/stats.h
2KB
lmbench-3.0-a9/src/stream.c
6.86KB
lmbench-3.0-a9/src/timing.h
1.31KB
lmbench-3.0-a9/src/timing_o.c
137B
lmbench-3.0-a9/src/tlb.c
4.34KB
lmbench-3.0-a9/src/TODO
3.91KB
lmbench-3.0-a9/src/version.h
73B
lmbench-3.0-a9/src/webpage-lm.tar
60KB

资源内容介绍

lmbench是个用于评价系统综合性能的多平台开源benchmark也可作为内存测试工具,带宽、延时
/* * a timing utilities library * * Requires 64bit integers to work. * * %W% %@% * * Copyright (c) 2000 Carl Staelin. * Copyright (c) 1994-1998 Larry McVoy. * Distributed under the FSF GPL with * additional restriction that results may published only if * (1) the benchmark is unmodified, and * (2) the version in the sccsid below is included in the report. * Support for this development by Sun Microsystems is gratefully acknowledged. */#define _LIB #include "bench.h"#definenz(x)((x) == 0 ? 1 : (x))/* * I know you think these should be 2^10 and 2^20, but people are quoting * disk sizes in powers of 10, and bandwidths are all power of ten. * Deal with it. */#defineMB(1000*1000.0)#defineKB(1000.0)static struct timeval start_tv, stop_tv;FILE*ftiming;static volatile uint64use_result_dummy;staticuint64iterations;staticvoidinit_timing(void);#if defined(hpux) || defined(__hpux)#include <sys/mman.h>#endif#ifdefRUSAGE#include <sys/resource.h>#defineSECS(tv)(tv.tv_sec + tv.tv_usec / 1000000.0)#definemine(f)(int)(ru_stop.f - ru_start.f)static struct rusage ru_start, ru_stop;voidrusage(void){double sys, user, idle;double per;sys = SECS(ru_stop.ru_stime) - SECS(ru_start.ru_stime);user = SECS(ru_stop.ru_utime) - SECS(ru_start.ru_utime);idle = timespent() - (sys + user);per = idle / timespent() * 100;if (!ftiming) ftiming = stderr;fprintf(ftiming, "real=%.2f sys=%.2f user=%.2f idle=%.2f stall=%.0f%% ", timespent(), sys, user, idle, per);fprintf(ftiming, "rd=%d wr=%d min=%d maj=%d ctx=%d\n", mine(ru_inblock), mine(ru_oublock), mine(ru_minflt), mine(ru_majflt), mine(ru_nvcsw) + mine(ru_nivcsw));}#endifvoidlmbench_usage(int argc, char *argv[], char* usage){fprintf(stderr,"Usage: %s %s", argv[0], usage);exit(-1);}voidsigchld_wait_handler(int signo){wait(0);signal(SIGCHLD, sigchld_wait_handler);}static intbenchmp_sigterm_received;static intbenchmp_sigchld_received;static pid_tbenchmp_sigalrm_pid;static intbenchmp_sigalrm_timeout;void (*benchmp_sigterm_handler)(int);void (*benchmp_sigchld_handler)(int);void (*benchmp_sigalrm_handler)(int);voidbenchmp_sigterm(int signo){benchmp_sigterm_received = 1;}voidbenchmp_sigchld(int signo){signal(SIGCHLD, SIG_DFL);benchmp_sigchld_received = 1;#ifdef _DEBUGfprintf(stderr, "benchmp_sigchld handler\n");#endif}voidbenchmp_sigalrm(int signo){signal(SIGALRM, SIG_IGN);kill(benchmp_sigalrm_pid, SIGTERM);/* * Since we already waited a full timeout period for the child * to die, we only need to wait a little longer for subsequent * children to die. */benchmp_sigalrm_timeout = 1;}void benchmp_child(benchmp_f initialize, benchmp_f benchmark, benchmp_f cleanup, int childid, int response, int start_signal, int result_signal, int exit_signal, int parallel, iter_t iterations, int repetitions, int enough, void* cookie );voidbenchmp_parent(int response, int start_signal, int result_signal, int exit_signal, pid_t* pids, int parallel, iter_t iterations, int warmup, int repetitions, int enough );intsizeof_result(int repetitions);void benchmp(benchmp_f initialize, benchmp_f benchmark,benchmp_f cleanup,int enough, int parallel,int warmup,int repetitions,void* cookie){iter_titerations = 1;longi;pid_t*pids = NULL;intresponse[2];intstart_signal[2];intresult_signal[2];intexit_signal[2];#ifdef _DEBUGfprintf(stderr, "benchmp(%p, %p, %p, %d, %d, %d, %d, %p): entering\n", initialize, benchmark, cleanup, enough, parallel, warmup, repetitions, cookie);#endifenough = get_enough(enough);#ifdef _DEBUGfprintf(stderr, "\tenough=%d\n", enough);#endifif (repetitions < 0)repetitions = (1 < parallel || 1000000 <= enough ? 1 : TRIES);settime(0);save_n(1);if (parallel > 1) {benchmp(initialize, benchmark, cleanup, enough, 1, warmup, repetitions, cookie);if (gettime() == 0)return;iterations = get_n();if (enough < SHORT) {double tmp = (double)SHORT * (double)get_n();tmp /= (double)gettime();iterations = (iter_t)tmp + 1;}settime(0);save_n(1);}if (pipe(response) < 0 || pipe(start_signal) < 0 || pipe(result_signal) < 0 || pipe(exit_signal) < 0) {#ifdef _DEBUGfprintf(stderr, "BENCHMP: Could not create control pipes\n");#endif return;}benchmp_sigchld_received = 0;benchmp_sigterm_received = 0;benchmp_sigterm_handler = signal(SIGTERM, benchmp_sigterm);benchmp_sigchld_handler = signal(SIGCHLD, benchmp_sigchld);pids = (pid_t*)malloc(parallel * sizeof(pid_t));if (!pids) return;bzero((void*)pids, parallel * sizeof(pid_t));for (i = 0; i < parallel; ++i) {if (benchmp_sigterm_received)goto error_exit;#ifdef _DEBUGfprintf(stderr, "benchmp(%p, %p, %p, %d, %d, %d, %d, %p): creating child %d\n", initialize, benchmark, cleanup, enough, parallel, warmup, repetitions, cookie, i);#endifswitch(pids[i] = fork()) {case -1:#ifdef _DEBUGfprintf(stderr, "BENCHMP: fork() failed!\n");#endif goto error_exit;case 0:close(response[0]);close(start_signal[1]);close(result_signal[1]);close(exit_signal[1]);handle_scheduler(i, 0, 0);benchmp_child(initialize, benchmark, cleanup, i, response[1], start_signal[0], result_signal[0], exit_signal[0], enough, iterations, parallel, repetitions, cookie);exit(0);default:break;}}close(response[1]);close(start_signal[0]);close(result_signal[0]);close(exit_signal[0]);benchmp_parent(response[0], start_signal[1], result_signal[1], exit_signal[1], pids, parallel, iterations, warmup, repetitions, enough);goto cleanup_exit;error_exit:signal(SIGCHLD, SIG_DFL);while (--i >= 0) {kill(pids[i], SIGTERM);waitpid(pids[i], NULL, 0);}cleanup_exit:/* * Clean up and kill all children * * NOTE: the children themselves SHOULD exit, and * Killing them could prevent them from * cleanup up subprocesses, etc... So, we only * want to kill child processes when it appears * that they will not die of their own accord. * We wait twice the timing interval plus two seconds * for children to die. If they haven't died by * that time, then we start killing them. */benchmp_sigalrm_timeout = (int)((2 * enough)/1000000) + 2;if (benchmp_sigalrm_timeout < 5)benchmp_sigalrm_timeout = 5;signal(SIGCHLD, SIG_DFL);while (i-- > 0) {benchmp_sigalrm_pid = pids[i];benchmp_sigalrm_handler = signal(SIGALRM, benchmp_sigalrm);alarm(benchmp_sigalrm_timeout); waitpid(pids[i], NULL, 0);alarm(0);signal(SIGALRM, benchmp_sigalrm_handler);}if (pids) free(pids);#ifdef _DEBUGfprintf(stderr, "benchmp(0x%x, 0x%x, 0x%x, %d, %d, 0x%x): exiting\n", (unsigned int)initialize, (unsigned int)benchmark, (unsigned int)cleanup, enough, parallel, (unsigned int)cookie);#endif}voidbenchmp_parent(int response, int start_signal, int result_signal, int exit_signal,pid_t* pids,int parallel, iter_t iterations,

用户评论 (0)

发表评论

captcha