栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

CSAPP perflab和cachelab遇到的一些阴间问题和解决

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CSAPP perflab和cachelab遇到的一些阴间问题和解决

perflab:

1.没有sys/time.h、sys/cdef.h等。

原因:在64位虚拟机上,编译32位程序,就会出现此问题。

解决方法:需要安装两个库:sudo apt-get install g++-multilib,sudo apt-get install libc6-dev。

2.smooth的时候,尝试用中间变量减少重复计算,结果却在每一个点的计算结果上都出错了。偶尔会出现差值是2^14这种特异数值。

原因:你使用了pixel类型作为中间变量,而pixel类型的数据定义是short型。如果你存的是几个点的sum,那么很可能被截尾。

解决方法:用int临时变量保存。

3.自动计算means对于rotate函数会算得异常偏小,如果你感觉应该过了但是means显示没过,记得手算一下。

cachelab:

1.cache模拟部分测试时报错segmentation fault (core dumped)

原因:指针越界,我这里是s和S(1<

解决方法:用gdb测试你的程序,出现越界的时候gdb会告诉你在哪里出错。

2.trans转置部分测试时非常卡

原因:很多地方都提到了是要移动到虚拟机独有的文件夹而不是共享文件夹,但是还有一个问题,可能是你的代码错了!如果你发现超时,第一时间检查你的可用剩余空间是否显著下降,如果是,说明是你的代码出错了,有无限循环等会导致程序无法结束的异常代码。

剩余空间下降的原因,我估计是valgrind在出现异常结束的时候,不会清除自己产生的文件,这会导致剩余空间被不知道哪来的文件全部占满,如果占满之后就再也打不开虚拟机了。

解决方法:将文件移动到虚拟机独有的文件夹中;检查代码错误。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974686.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号