symlink在ln的过程中究竟占用了多少耗时

今天看到群里的童鞋们在讨论ln命令的使用,天花乱坠说到了symlink,有同学用估算的口气说symlink耗时很低的,肯定ln总耗时是symlink的好几百倍,他猜中了吗?

现在针对ln -s ~/install install来验证下strace -tt -T输出:

14:08:20.190334 execve("/bin/ln", ["ln", "-s", "/home/linxp/install", "install"], ["XDG_VTNR=7", "SSH_AGENT_PID=2251", "XDG_SESSION_ID=c2", "CLUTTER_IM_MODULE=xim", "SESSION=ubuntu", "TERM=xterm", "XDG_MENU_PREFIX=gnome-", "SHELL=/bin/bash", "VTE_VERSION=3406",
"WINDOWID=65011719", "UPSTART_SESSION=unix:abstract=/c"..., "GNOME_KEYRING_CONTROL=/run/user/"..., "GTK_MODULES=overlay-scrollbar:un"..., "USER=linxp", "LS_COLORS=rs=0:di=01;34:ln=01;36"..., "XDG_SESSION_PATH=/org/freedeskto"..., "XDG_SEAT_PATH=/org/freedesktop/D"...,
"SSH_AUTH_SOCK=/run/user/1000/key"..., "SESSION_MANAGER=local/ubuntu:@/t"..., "DEFAULTS_PATH=/usr/share/gconf/u"..., "XDG_CONFIG_DIRS=/etc/xdg/xdg-ubu"..., "PATH=/usr/lib/lightdm/lightdm:/u"..., "DESKTOP_SESSION=ubuntu", "JOB=dbus", "PWD=/tmp", "[email protected]=fcitx",
"GNOME_KEYRING_PID=2190", "LANG=en_US.UTF-8", "GDM_LANG=en_US", "MANDATORY_PATH=/usr/share/gconf/"..., "UBUNTU_MENUPROXY=1", "IM_CONFIG_PHASE=1", "COMPIZ_CONFIG_PROFILE=ubuntu", "GDMSESSION=ubuntu", "SESSIONTYPE=gnome-session", "SHLVL=1", "XDG_SEAT=seat0",
"HOME=/home/linxp", "LANGUAGE=en_US", "GNOME_DESKTOP_SESSION_ID=this-is"..., "UPSTART_INSTANCE=", "UPSTART_EVENTS=started xsession", "LOGNAME=linxp", "COMPIZ_BIN_PATH=/usr/bin/", "QT4_IM_MODULE=fcitx", "XDG_DATA_DIRS=/usr/share/ubuntu:"..., "DBUS_SESSION_BUS_ADDRESS=unix:ab"...,
"LESSOPEN=| /usr/bin/lesspipe %s", "INSTANCE=", "UPSTART_JOB=gnome-session", "TEXTDOMAIN=im-config", "XDG_RUNTIME_DIR=/run/user/1000", "DISPLAY=:0", "XDG_CURRENT_DESKTOP=Unity", "GTK_IM_MODULE=fcitx", "LESSCLOSE=/usr/bin/lesspipe %s %"..., "TEXTDOMAINDIR=/usr/share/locale/",
"COLORTERM=gnome-terminal", "XAUTHORITY=/home/linxp/.Xauthori"..., "_=/usr/bin/strace", "OLDPWD=/home/linxp/test"]) = 0 <0.000402>

14:08:20.192273 brk(0)                  = 0x954a000 <0.000022>

... ...

14:08:20.239693 symlink("/home/linxp/install", "install/install") = -1 EEXIST (File exists) <0.000032>

... ...

14:08:20.243516 close(2)                = 0 <0.000021>

14:08:20.243626 exit_group(1)           = ?

14:08:20.243825 +++ exited with 1 +++

总微秒耗时 T = 243825 - 190334 =>  0.053491

symlink耗时 t = 0.000032

可见symlink耗时之低,那主要的操作耗时在哪里呢:(-tt -v -c)

% time     seconds  usecs/call     calls    errors syscall

------ ----------- ----------- --------- --------- ----------------

0.00    0.000000           0         3           read

0.00    0.000000           0         4           write

0.00    0.000000           0        13         8 open

0.00    0.000000           0         8           close

0.00    0.000000           0         1           execve

0.00    0.000000           0         3         3 access

0.00    0.000000           0         3           brk

0.00    0.000000           0         1         1 symlink

0.00    0.000000           0         2           munmap

0.00    0.000000           0         3           mprotect

0.00    0.000000           0         1         1 _llseek

0.00    0.000000           0        10           mmap2

0.00    0.000000           0         1           stat64

0.00    0.000000           0         5           fstat64

0.00    0.000000           0         1           set_thread_area

------ ----------- ----------- --------- --------- ----------------

主要都还是在中断、io操作上多操作多耗时居!

时间: 2024-08-02 17:35:34

symlink在ln的过程中究竟占用了多少耗时的相关文章

【转】Matlab使用过程中内存不足问题的总结

使用matlab过程中经常会出现内存不足的问题,这里转载一篇来自http://blog.csdn.net/xiaojidan2011/article/details/8089532 的博文,解决这一问题. 做图像处理的,对matlab这工具软件一定不会陌生,他的高集成度为图像处理提供了很大的方便,但我们在使用时难免会出现内存不足的问题,2.3G的内存还不够处理一次简单图像,这确实很恐怖.但这里的警告并不是说真的物理内存用完了,一般out of memenry存在以下几种情况:1. 变量需要的存储

使用beanstalkd实现定制化持续集成过程中pipeline - 持续集成系列

持续集成是一种项目管理和流程模型,依赖于团队中各个角色的配合.各个角色的意识和配合不是一朝一夕能练就的,我们的工作只是提供一种方案和能力,这就是持续集成能力的服务化.而在做持续集成能力服务化的过程中,最核心的一点就是,如何实现一个可定制化的任务流,即所谓的pipeline. 在传统的持续集成工具实现了pipeline功能,以供串联上下游job,并把多个job联系成一次完整的构建,例如jenkins的pipeline插件. 但是各种持续集成工具,或多或少都有自己的短板,总结起来如下: 1.配置并不

[转载] linux 程序运行过程中替换文件

今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”.结果朋友发来一个执行结果:(test正在运行中)# cp test2 test cp: cannot create regular file `test': Text file busy 看起来是程序被占用,无法覆盖.于是自己又再做了几个实验: (1)先rm删除正在运行的test,然后cp test2 test就没有错误了.(2)先mv改名正在运行的test,

Lucene索引过程中的内存管理与数据存储

Lucene的索引过程分两个阶段,第一阶段把文档索引到内存中:第二阶段,即内存满了,就把内存中的数据刷新到硬盘上.          倒排索引信息在内存存储方式 Lucene有各种Field,比如StringField,TextField,IntField,FloatField,DoubleField-,Lucene在处理的过程中把各种Field都处理成相应的byte[],以最本质的方式来看待各种Field的内容,统一了数据的存储形式. 在写入内存阶段,第一步就是需要理清各个类之间的关系. 在索

github过程中收集

<HelloGithub月刊>第三期 <HelloGithub>第三期 兴趣是最好的老师,而<HelloGithub> 就是帮你找到兴趣! 因为我比较熟悉python语言,所以月刊中python语言的项目居多,个人能力有限,其他语言涉及甚少,欢迎各路人士加入,丰富月刊的内容. 当然,如果您有更好的建议或者意见,欢迎发邮件给我. 简介 最开始只是我自己浏览github过程中收集的一些有中文介绍,通俗易懂,简单容易上手的项目.后来一想,如果每个github都有个简单的效果图

APP store 上架过程中碰到的那些坑&amp;被拒的各种奇葩原因整理&amp;审核指南中文版

苹果官方发布的十大常见被拒原因 1.崩溃次数和Bug数量.苹果要求开发者在将应用提交给App Store之前彻查自己的应用,以尽量避免Bug的存在. 2.链或错误的链接.应用中所有的链接必须是真实且有效的. 3.占位符内容.有占位符内容的应用将无法审核通过. 4.提交的信息不完整.苹果要求开发者提供所有必须在iTunes Connect的应用审查信息区(App Review Information Section)中提交审查时所需要用到的所有完整信息.这是应用审核未通过最常见的原因,占到了14%

减少过程中的浪费(1/2)

精益生产(Lean Production),简称"精益",是衍生自丰田生产方式的一种管理哲学,商管教育如EMBA.MBA等均对精益生产有所介绍.精益生产在日本近代文化中起到了极其重要的作用,日本政府甚至一度要求凡是企业中层领导,必须进修精益生产. 减少流程中的浪费属于精益生产的范畴,有人把精益生产与六西格玛相结合,成为精益六西格玛. 精益六西格玛 传统六西格玛项目主要解决与变异有关的复杂问题,例如控制一个过程的产品一次通过率.精益六西格玛项目解决的问题不仅包括传统六西格玛要解决的所有问

oracle 11gr2 rac搭建过程中若干问题的总结

今天在vbox上搭建11gr2 rac时候,遇到了些问题,总结如下 环境 redhat linux 5.8 64-bit oracle 11.2.0.4 rac+asm 问题一:安装grid infrastructure,报错INS-40912 描述: 在安装grid infrastructure的时候,在添加完第二个节点的hostname和vip之后,next检查报错INS-40912,说节点2的vip被占用,请选择其他地址 这个环境是在原有的rac上卸载后重新安装的,没有重启操作系统 原因

Ubuntu14.04安装mysql及过程中遇到的一点小问题

Ubuntu14.04出来有段时间了,前几天刚升级到这个版本,新鲜了一把.不过安装mysql时遇到了一点小问题,记录一下以备后用. 预备操作: 网上安装mysql的方法不少,大体有这么三种. 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 2. 安装离线包,以mysql-5.0.45-linux-i686-icc-glibc23.tar.gz为例. 3. 二进制包安装:安装完成已经自动配置好环境变量