当前位置: 首页 > news >正文

军事网址大全 网站专业的句容网站建设

军事网址大全 网站,专业的句容网站建设,婚纱摄影网站设计,网站建设营销外包公司哪家好redis的内存检测会和机器的CPU位数有关#xff0c;32位或64位会影响后面的一些宏定义参数。首先给出memtest中的API#xff1a; void memtest_progress_start(char *title, int pass) /* 内存检测加载开始#xff0c;输出开始的一些图线显示 */ void memtest_progress_end(…redis的内存检测会和机器的CPU位数有关32位或64位会影响后面的一些宏定义参数。首先给出memtest中的API void memtest_progress_start(char *title, int pass) /* 内存检测加载开始输出开始的一些图线显示 */ void memtest_progress_end(void) /* progress bar加载完再次清屏操作 */ void memtest_progress_step(size_t curr, size_t size, char c) /* progress填充自己设置的字符串 */ void memtest_addressing(unsigned long *l, size_t bytes) /* 地址检测方法 */ void memtest_fill_random(unsigned long *l, size_t bytes) /* 随机填充内存 */ void memtest_fill_value(unsigned long *l, size_t bytes, unsigned long v1, unsigned long v2, char sym) /* 像上面的方法只不过这是特定2种值的填充v1,v2 */ void memtest_compare(unsigned long *l, size_t bytes) /* 内存比较方法 */ void memtest_compare_times(unsigned long *m, size_t bytes, int pass, int times) /* 进行多次内存compare比较操作 */ void memtest_test(size_t megabytes, int passes) /* 整个内存检测类操作的测试方法passes为目标的循环数 */ void memtest_non_destructive_invert(void *addr, size_t size) /* 将内存地址进行了按位取反操作不具有对数据的破坏性 */ void memtest_non_destructive_swap(void *addr, size_t size) /* 将内存地址2个2个内部之间做交换同样不对数据具有破坏性 */ void memtest(size_t megabytes, int passes) /* 开发给整个系统使用的内存检测方法 */ CPU位数的限制 #if (ULONG_MAX 4294967295UL) #define MEMTEST_32BIT #elif (ULONG_MAX 18446744073709551615ULL) #define MEMTEST_64BIT #else #error ULONG_MAX value not supported. #endif 以其中的接口为例进行说明 memtest_progress_start是内存检测开始的接口 内存检测加载开始输出开始时一些图线显示一般的test都会有这种显示 void memtest_progress_start(char *title, int pass) {int j;printf(\x1b[H\x1b[2J); /* Cursor home, clear screen. *//* Fill with dots. */// 填充.for (j 0; j ws.ws_col*(ws.ws_row-2); j) printf(.);printf(Please keep the test running several minutes per GB of memory.\n);printf(Also check http://www.memtest86.com/ and http://pyropus.ca/software/memtester/);printf(\x1b[H\x1b[2K); /* Cursor home, clear current line. */// 输出标题printf(%s [%d]\n, title, pass); /* Print title. */progress_printed 0;// 填满进度条的算法progress_full ws.ws_col*(ws.ws_row-3);fflush(stdout); } memtest_addressing内测检测的核心算法。 主要看里面的注释部分其中为什么这样设置本人也是不理解请高手留言在此谢过.......... int memtest_addressing(unsigned long *l, size_t bytes, int interactive) {// 算出地址的lenunsigned long words bytes/sizeof(unsigned long);unsigned long j, *p;/* Fill */p l;for (j 0; j words; j) {// 取出p的地址再赋值给p*p (unsigned long)p;p;// 用A填充progress bar中符合该条件的位置if ((j 0xffff) 0 interactive)memtest_progress_step(j,words*2,A);}/* Test */p l;for (j 0; j words; j) {// address比较if (*p ! (unsigned long)p) {if (interactive) {printf(\n*** MEMORY ADDRESSING ERROR: %p contains %lu\n,(void*) p, *p);exit(1);}return 1;}p;if ((j 0xffff) 0 interactive)memtest_progress_step(jwords,words*2,A);}return 0; } 还有一种是随机填充memtest_fill_random在每次写操作的时候在单页上填满整个字符这样可以做到最快速的触及所有的页面 减少了低效率的缓存使用但是会让分区在转移页面时会比较困难 void memtest_fill_random(unsigned long *l, size_t bytes, int interactive) {// 每次移动的步长unsigned long step 4096/sizeof(unsigned long);unsigned long words bytes/sizeof(unsigned long)/2;unsigned long iwords words/step; /* words per iteration */unsigned long off, w, *l1, *l2;uint64_t rseed UINT64_C(0xd13133de9afdb566); /* Just a random seed. */uint64_t rout 0;assert((bytes 4095) 0);for (off 0; off step; off) {l1 loff;l2 l1words;for (w 0; w iwords; w) {xorshift64star_next();// 填充l1 l2*l1 *l2 (unsigned long) rout;l1 step;l2 step;// 剩余部分填充Rif ((w 0xffff) 0 interactive)memtest_progress_step(wiwords*off,words,R);}} } 开放给外界的方法经过passes次的测试才能确定是否通过 int memtest_test(unsigned long *m, size_t bytes, int passes, int interactive) {int pass 0;int errors 0;// 运行passes 次while (pass ! passes) {pass;// address testif (interactive) memtest_progress_start(Addressing test,pass);errors memtest_addressing(m,bytes,interactive);if (interactive) memtest_progress_end();// Random fillif (interactive) memtest_progress_start(Random fill,pass);memtest_fill_random(m,bytes,interactive);if (interactive) memtest_progress_end();errors memtest_compare_times(m,bytes,pass,4,interactive);// 固定填充if (interactive) memtest_progress_start(Solid fill,pass);memtest_fill_value(m,bytes,0,(unsigned long)-1,S,interactive);if (interactive) memtest_progress_end();errors memtest_compare_times(m,bytes,pass,4,interactive);// 使用C字符填充测试if (interactive) memtest_progress_start(Checkerboard fill,pass);memtest_fill_value(m,bytes,ULONG_ONEZERO,ULONG_ZEROONE,C,interactive);if (interactive) memtest_progress_end();errors memtest_compare_times(m,bytes,pass,4,interactive);}return errors; } 总之内存测试分为4中情况内存地址测试其他都为填充测试分为3种类型的填充Random fill, Solid fill, Checkboard fill 。填充之后再做内存比较这里的内存比较是在内存内部做前半部分的内存和后半部分的内存比较操作
http://wiki.neutronadmin.com/news/119402/

相关文章:

  • 杭州市网站建设合肥网站营销
  • 坪地网站建设哪家好wordpress评分
  • 聊城网站开发培训微网站 模板
  • 有偷菜餐厅城市建设的网站网站建设服务流程
  • 佛山市建设企业网站服务机构wordpress添加留言
  • 网站登录验证码显示不出来温州品牌推广
  • 在线代理浏览器网站免费网站app哪个最好
  • 协会网站建设计划东莞微信网站
  • 织梦可以放两个网站网站建设的流程简答题
  • 做kegg通路富集的网站vue做的pc线上网站
  • 购物帮做特惠的导购网站在线logo免费设计生成器标智客
  • 广州网站建设粤icpit外包合同模板
  • 怎么在网站后台做图片新闻西宁城西区建设局网站
  • 建设网站需要的工具山东省建设人才网站
  • 高度重视局门户网站建设网站提交做外链有什么作用
  • 网站建设如何描述策划书模板
  • 网站建设深圳哪家好免费发外链平台
  • 网站的建设域名空间网站开发详细设计文档模板
  • 预约网站制作教育网站
  • 厦门市建设局网站公布网站开发的就业前景如何
  • 图片站wordpress模板下载南通网站建设制作公司
  • 永城网站设计公司做图片带字的网站
  • 网站介绍怎么写范文seo顾问服务公司站长
  • 怎么做网站排版网站题头是什么
  • 茂名网站开发公司做网站 公司
  • 香奈儿网站建设目标大连哪个公司做网站好
  • 简单建站外贸网站建设是什么
  • 家政的网站怎么做怎么创建属于自己的平台
  • 大理高端网站建设免费企业网站系统源码
  • 网站开发及推广是怎么回事网站开发管理学什么