2009年6月20日星期六

[PerlChina] Re: 腾讯互动娱乐mysql DBA四面面经

glob和readdir的功能不同, glob可以看作是对readdir的封装. 这么比不怎么公平...

2009/6/20 Michael Zeng <galaxy2004@gmail.com>

这个我打过benchmark的
 

use strict ;
use warnings ;
use Benchmark ;
 
my $count = 10_000 ;
my @files ;
timethese( $count , {
  'use_glob' => sub {
      @files = glob "*" ;
   } ,
   'use_opendir' =>  sub {
      opendir my $F1,   "." ;
       @files = readdir ($F1) ;
   },
  } ) ;
  
  
 
结果是
 
Benchmark: timing 10000 iterations of use_glob, use_opendir...
  use_glob: 19 wallclock secs ( 5.49 usr + 11.18 sys = 16.66 CPU) @ 600.10/s (n=10000)
use_opendir:  2 wallclock secs ( 1.00 usr +  0.84 sys =  1.84 CPU) @ 5428.88/s (n=10000)
 
 

 
2009/6/20 Don Qin <icefishc@gmail.com>
可以明确的是glob没有调用外部shell. 
至于效率问题 我想和处理的具体问题有关终究它们两个的功能不同不好直接比较. 
在*nix平台它们在读取文件夹这一步都是调用的c中readdir.
在其它平台上的它们2个所采用的方式可能也是相同的. 不知道为什么你会说glob的移植性比readdir差。 如果你有明确的证据请你只出来. 万分感谢. 
也不清楚你认为glob会受文件数量影响的原因。 能否给出证据。 谢谢

2009/6/20 Don Qin <icefishc@gmail.com>
请问, 这种说法有根据么?


2009/6/20 vincent <pcwl.vincent@gmail.com>

对,glob的<>操作本质上是调用外部shell,所以效率上是不如readdir的,而且其最大缺点就是受文件数量限制和影响移植~~~,这也是我
工作中碰到的问题~~  所以就一般都不用它了~

On 6月19日, 下午9时25分, Michael Zeng <galaxy2...@gmail.com> wrote:
>  原来readdir 比glob还有这个好处
>
> 我从来都是用glob的
>
> 不过benchmark 表明 opendir/readdir 比glob效率高
>
> 2009/6/19 xjdengz <xjde...@gmail.com>
>
>
>
>
>
> > 2009/6/19 vincent <pcwl.vinc...@gmail.com>
>
> > > 20090611腾讯四面面经
> > > 1月11号面了腾讯,今天得到结果是fail,呵呵现在把面经写出来给大家分享一下。免得大家跟我一样变成炮灰~。
> > > 跟论坛里面robin订好是下午两点的时间,由于天气比较恶劣,到东站迟了十来分钟,错过了12点去深圳的一班,只能坐12:20一班的车,到深圳
>
> > > 这个岗位,第二是没有注意面试中的小细节,导致面试官产生偏见。第三就是简历做得太无针对性。第四可能就是传说中的人品了~~  ⊙﹏⊙b汗。
> > > 去面试的朋友有帮助。
> > > 最后介绍一下我自己,广州五山某理工学习毕业,三年的电信网管开发经验,精通perl、unix/linux c,perl主要是文本分析,系统监控及
> > > 管理,网络通信,数据库操作。c的话主
> > 五山某理工:)
> >  > 要是接口通讯开发,数据库通讯,谙熟多进程,多线程,信号,精灵进程,终端/伪终端等编程,mysql从应用、调优、管理、原理谙熟于心娴熟于手,呵呵
> > > ~~其余啥都懂一点,包
>
> > > 括泡妞、蒲夜场,跑东莞...,现在想换新工作,有介绍的朋友请不吝帮衬~~~,工资最好不要低于7.5K  O(∩_∩)O~~~~
>
> --
>            Yours Sincerely
>                    Zeng Hong





--
           Yours Sincerely
                   Zeng Hong




--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: