⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 randpage.c

📁 早期freebsd实现
💻 C
字号:
/* * Random page access benchmark. */#include <sys/vadvise.h>char	*valloc();int	rand();main(argc, argv)	char *argv[];{	register int npages = 4096, pagesize, pn, i, niter;	int vflag = 0, debug = 0;	char *pages, *name;	name = argv[0];	argc--, argv++;again:	if (argc < 1) {usage:		printf("usage: %s [ -d ] [ -v ] [ -k #Kb ] niter\n", name);		exit(1);	}	if (strcmp(*argv, "-k") == 0) {		argc--, argv++;		if (argc < 1)			goto usage;		npages = atoi(*argv);		if (npages <= 0) {			printf("%s: Bad virtual memory size.\n", *argv);			exit(2);		}		argc--, argv++;		goto again;	}	if (strcmp(*argv, "-v") == 0) {		argc--, argv++;		vflag++;		goto again;	}	if (strcmp(*argv, "-d") == 0) {		argc--, argv++;		debug++;		goto again;	}	niter = atoi(*argv);	pagesize = getpagesize();	npages /= pagesize / 1024;	pages = valloc(npages, pagesize);	if (pages == (char *)0) {		printf("Can't allocate %d pages (%2.1f megabytes).\n",		    npages, (npages * pagesize) / (1024. * 1024.));		exit(3);	}	if (pagesize != 1024)		printf("Pagesize %dKb\n", pagesize / 1024);	if (vflag)		vadvise(VA_ANOM);	for (i = 0; i < niter; i++) {		pn = random() % npages;		if (debug)			printf("touch page %d\n", pn);		pages[pagesize * pn] = 1;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -