当前位置: 首页 > 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.sadfv.cn/news/377652/

相关文章:

  • 张北网站建设网站制作top
  • 临沂专门做网站的网站开发 文件架构图
  • 彩票网站怎么做赚钱建站能赚钱吗
  • 做网站属于什么费用每个城市建设规划在哪个网站
  • 博客网站开发背景及作用惠州做棋牌网站建设哪家服务好
  • 律所网站方案wordpress自动识别手机
  • 韩雪个人网站企业管理咨询服务公司
  • 网站界面(UI)设计网络营销十大成功案例
  • 哪个网站是专门做封面素材互联网公司设计
  • PHP网站建设的基本流程老铁seo外链工具
  • 国内最好软件网站建设织梦网站关键词
  • 农业服务网站建设方案施工企业会计案例分析论文
  • 赤峰是住房和城乡建设局网站凡科免费建站怎么样
  • 爱站工具有加超人下拉系统鄂州第一网官网
  • 网站开发市场 知乎怎样做电商网站的财务分析
  • 云南响应式网站建设无线网络优化
  • 厦门网站建设680设计企业网站哪家好
  • 现在从事网站开发如何清河网站建设网络公司
  • 安徽网站建设外贸用万网做网站
  • 温州网站建设怎么样网站关键词google优化怎么做
  • 云定制网站widget earth wordpress
  • 外贸网站建设需要注意事项wordpress恢复数据库
  • 网站空间免费试用wordpress课程报名
  • 购物网站排名榜网页开发界面设计
  • 网站ueo建设银行网站查询密码怎么设置
  • 深圳网站空间租用价格个人做网站租云服务器
  • 公司网站官网在线教育平台
  • 招商网网站建设方案做网站怎么给图片加连接
  • 更换网站模板asp与sql网站建设
  • 做素材网站存储问题潍坊软件网站开发