
一直有在关注rust,毕竟是号称要取代c++的、现代的、系统级的编程语言。
而且,从网上反馈的信息来看,大家对rust语言本身都是持好评态度的。
这两天趁着有点时间,学了下rust,并且写了个查看linux下进程信息的小程序。
代码本身非常简单,就是提取 /proc/[pid]/ 目录下的信息,整理后输出出来。
代码已经提交到github上,有兴趣的可以看一下。
https://github.com/wangyuntao/pinfo-rs
用法及输出大致为:
$ ./pinfoUsage: ./pinfo <pid>
$ sudo ./pinfo 1
pid : 1
cmdline : /sbin/init
exe : /usr/lib/systemd/systemd
cwd : /
mem (kb) : 9916
threads : 1
open files : 71
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size unlimited unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 63082 63082 processes
Max open files 1073741816 1073741816 files
Max locked memory 67108864 67108864 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 63082 63082 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us通过写这个项目,我本身觉得rust还是太复杂了。
为了自动管理内存且不要gc的方式,设计了 ownership/borrowing/lifetime 机制,思路本身很好,但现实是使用起来太过复杂。
trait特性是让我觉得惊艳的地方,但现实是在std标准库里,各种trait满天飞,看个api的用法能把你绕晕。
另外的感受是,api设计的非常不友好,可能也是因为上面的两点原因吧。
我觉得rust最出彩的地方是它的工具链及包管理,rustup、cargo命令用起来太舒服了。
可能是我写习惯java了,目前为止,感觉还接受不了rust的方式。
但我还是会继续关注的,希望它能越变越好。
完。
本文分享自 Linux内核及JVM底层相关技术研究 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!