Feeds:
Posts
Comments

2011/8/30

  1. Computer Systems : A Programmers’s Perspective这本书的第10章Virtual Memory部分看完大部分,明天应该可以看完。
  2. 学习了如何使用GNU info工具来读文档。感觉这个工具应该挺不错的,就是不知道为什么好像没有man那么出名。而且info好像和Emacs集成得非常好,可以考虑一下是否要学习一下Emacs。

2011/8/29

  1. 确定了要继续弄懂OS中virtual page到physical page的映射实现。是否是randomly导致了lmbench中lat_ctx结果中的极值异常现象。
  2. 在图书馆借了一本Computer Systems : A Programmer’s Perspective,看到里面的p703处说程序可以调用mmap来做自己的memory mapping。是否可以用这个来修改mmap,从而消除lat_ctx的page coloring问题。从结果也可以进一步验证是否是page coloring的问题导致了极值的出现。
  1. 对于某些只需要运行一次的函数,可以在函数体内部定义一个static变量。比如:static int done = 0;if(done) return; done = 1;

前提:

  1. 我的vi经过配置可以保持上一次关闭时的代码折叠情况,相关的文件保存在~/.vim/view/文件夹下。
  2. 编辑文件时我进行了vi分屏操作:先进行了垂直分屏,又在其中一个屏里进行了水平分屏,总共3个屏。
  3. 我在查看代码文件的时候,经常使用ctags在函数的定义、声明等处进行跳转。
  4. 在我分屏后,突然发现语法高亮消失了。
  5. 关闭vi后重新打开文件,只有其中一个文件的语法高亮消失了。
分析:
  1. 分屏是突然语法高亮消失,原因可能和分屏有关。
  2. 也可能和语法折叠保留有关,必须查看~/.vim/view/下的文件
结果:
  1. 删除了~/.vim/view/下和无法高亮显示文件相关的文件后,语法高亮恢复了。
相关文件:
  1. 文件在CPU中心145服务器上。
  2. 文件~/lmbench3/src/lib_timing.c无法高亮显示。
  3. ~/.vim/view/~=+lmbench3=+src=+lib_timing.c=这个文件导致了上面那个文件无法高亮显示。

#######

### 以下所述为本人参考了网络上其他文章,修改后发布

#######

在.vimrc文件中添加两行:

au BufWinLeave * silent mkview

au BufWinEnter * silent loadview

可以在vi退出文件的时候保存当时的折叠记录,下次打开该文件时原来的折叠记录会自动恢复。

对于代码开发人员来说,这是个非常方面的技巧。

但是可能有出错。在你修改了.vimrc文件后,当你打开某个文件,然后关闭时出现错误提示:

Error detected while processing BufWinLeave Auto commands for “*”

E739: Cannot create directory: /Users/myusername/.vim/view

E190: Cannot open “/Users/myusername/.vim/view/~=+.vimrc=” for writing

解决办法:

在该用户的home目录下新建文件夹.vim/view,并且设置该文件夹的权限为755。所用命令为:

mkdir -p ~/.vim/view

chmod 755 ~/.vim/view

这样应该就不会再出现前面所讲的错误提示了。