当前位置: 首页 > 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://www.yutouwan.com/news/377652/

相关文章:

  • 泰州网站建设制作深圳网站建设
  • 五大门户网站上海制作网页宣传
  • 自助建站是什么意思微信公众平台管理系统
  • 北京电商网站建设设计网站页面特效怎么做
  • 动易网站模板页面素材图片
  • 做平台外卖的网站需要什么资质宝安公司可以网站设计
  • 如何在eclipse上做网站莱芜雪野湖国际会议中心
  • 搭建网站的六个基本步骤流程1688会提供网站建设
  • 辛集专业网站建设网络文学网站开发
  • 温岭做鞋子的网站百度网盘网页版登录
  • 包头手机网站制作下载百度app最新版到桌面
  • 长葛网站建设公司郓城菏泽网站建设
  • 橱柜网站源码国家企业信息公示系统官网平台
  • 内蒙古建设工程造价管理网站游戏开发网站建设
  • 网站关键词指数查询工具怎么做诚信通网站的店招
  • 龙岩门户网站我理解的网络营销是什么
  • 中时讯通信建设有限公司网站网站2级目录怎么做
  • c 做网站教程制作简单的网站
  • 合肥响应式网站开发方案网站线框图怎样做
  • 英文网站开发哪家好永久 终身 云服务器
  • 免费建站的平台网站排名是什么意思
  • 网站建站一本通在sae上搭建wordpress
  • 微信小程序联盟网站网络品牌营销策划的概念
  • wordpress 分类目录插件seo成功案例分析
  • 网站开发的软硬件环境网页制作和设计实验目的
  • 郴州网站开发公司会展设计方案
  • 做实验网站3000部末年禁止app软件
  • 做好网站维护无锡网站开发平台
  • 建设企业网站个人网银网站建设要钞钱
  • 网站建设技术部职责动漫制作专业学什么就业方向