[#321574] Regular Expressions — Mmcolli00 Mom <mmc_collins@...>

Hi everyone.

15 messages 2008/12/01

[#321655] Ruby cgi script — ZippySwish <fischer.jan@...>

I put "script.rb" into the cgi-bin folder of my webhost, but nothing's

12 messages 2008/12/02

[#321733] FFI 0.2.0 — "Wayne Meissner" <wmeissner@...>

Greetings Rubyists.

20 messages 2008/12/03

[#321920] Force a program to stop if runtime exceeds given duration — Aldric Giacomoni <"aldric[remove]"@...>

Any idea how to do that?

25 messages 2008/12/04
[#321924] Re: Force a program to stop if runtime exceeds given duration — "Glen Holcomb" <damnbigman@...> 2008/12/04

On Thu, Dec 4, 2008 at 10:04 AM, Aldric Giacomoni <"aldric[remove]"@

[#322011] Re: Force a program to stop if runtime exceeds given duration — Ron Fox <fox@...> 2008/12/05

See http://www.ruby-doc.org/core-1.9/classes/Process.html#M003012

[#322016] Re: Force a program to stop if runtime exceeds given duration — Aldric Giacomoni <"aldric[remove]"@...> 2008/12/05

Everybody automatically assumes that rubyists are using Linux - sadly,

[#321969] Are there any Ruby Technical Writers here? — Vito Fontaine <vito.matro@...>

I am a beginner with Ruby who was interested in writing some programs.

15 messages 2008/12/04
[#321975] Re: Are there any Ruby Technical Writers here? — Robert Klemme <shortcutter@...> 2008/12/04

On 04.12.2008 22:43, Vito Fontaine wrote:

[#321984] Re: Are there any Ruby Technical Writers here? — Vito Fontaine <vito.matro@...> 2008/12/05

Robert Klemme wrote:

[#322014] Proximity searches in Ruby — Stuart Clarke <stuart.clarke1986@...>

Does Ruby have the ability to perform proximity searches on data. For

14 messages 2008/12/05
[#322056] Re: Proximity searches in Ruby — Ilan Berci <coder68@...> 2008/12/05

No proximity searches with 1.8.. you would need a full fledged text

[#322073] shoes 2 (raisins) is go. — _why <why@...>

Salutations and hi.

13 messages 2008/12/06

[#322260] Help on algorythm — Helder Oliveira <hrpoliveira@...>

Guys i have been trying to make this algorythm but with no sucess, can

13 messages 2008/12/09
[#322261] Re: Help on algorythm — "Glen Holcomb" <damnbigman@...> 2008/12/09

On Tue, Dec 9, 2008 at 7:44 AM, Helder Oliveira <hrpoliveira@gmail.com>wrote:

[#322283] Completely new programmer lacks direction — Cameron Carroll <ubernoobs@...>

Hi. I recently picked up a beginning ruby book, having only lightly

17 messages 2008/12/09

[#322285] compare 2 text files - check for difference - Please help — Mmcolli00 Mom <mmc_collins@...>

Hi. I want to take two files that are supposed to be identical, then ook

12 messages 2008/12/09
[#322301] Re: compare 2 text files - check for difference - Please help — Brian Candler <b.candler@...> 2008/12/09

Mmcolli00 Mom wrote:

[#322306] Re: compare 2 text files - check for difference - Please help — Mmcolli00 Mom <mmc_collins@...> 2008/12/09

require 'diff/lcs/Array'

[#322417] why Hash corrupts 'key' object ? — Dmitry Perfilyev <dmitry1976@...>

Hi, I have next script:

13 messages 2008/12/10

[#322464] Q: FFI and C++? — Jeremy Henty <onepoint@...>

If I want to wrap a C++ library using FFI, can it cope with the name

14 messages 2008/12/11

[#322516] Invoking Ruby code from a low-level language? — Alex Fulton <a.fulton@...>

Hi, my sincerest apologies if this question has already been answered

11 messages 2008/12/11

[#322529] parallel method return value — Louis-Philippe <default@...>

Hi all,

17 messages 2008/12/12

[#322566] How to run background processes (more than 1 worker) parallely. — "Deepak Gole" <deepak.gole8@...>

Hi

10 messages 2008/12/12

[#322624] singleton methods vs. meta instance methods — Daniel DeLorme <dan-ml@...42.com>

If I understand the ruby object model correctly, then an object's

15 messages 2008/12/13

[#322705] ruby 1.9.1: Encoding trouble: broken US-ASCII String — Tom Link <micathom@...>

Hi,

22 messages 2008/12/14

[#322710] Help with an "easy" regular expression substitution — Iñaki Baz Castillo <ibc@...>

Hi, I'm getting crazy to get a theorically easy substitution:

16 messages 2008/12/14

[#322819] Pure Ruby Zlib::GzipWriter — Daniel Berger <djberg96@...>

Hi,

53 messages 2008/12/15
[#324442] Re: Pure Ruby Zlib::GzipWriter — Luis Lavena <luislavena@...> 2009/01/10

On Jan 9, 9:26m, "Charles L." <aquas...@gmail.com> wrote:

[#323877] Re: Pure Ruby Zlib::GzipWriter — Daniel Berger <djberg96@...> 2009/01/03

[#323903] Re: Pure Ruby Zlib::GzipWriter — Roger Pack <rogerpack2005@...> 2009/01/04

[#324011] Re: Pure Ruby Zlib::GzipWriter — Daniel Berger <djberg96@...> 2009/01/05

[#322987] Using ruby hash on array — Stuart Clarke <stuart.clarke1986@...>

I would like to process some data from an array and using hash to

14 messages 2008/12/17

[#323085] Ruby and Rails supported on 10gen — "Jim Menard" <jim.menard@...>

http://www.10gen.com/blog/2008/12/ruby-support-on-10gen

11 messages 2008/12/18

[#323166] Dreaming of a Ruby Christmas (#187) — Matthew Moss <matt@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

11 messages 2008/12/19

[#323204] get first and last line from txt file - how? — Mmcolli00 Mom <mmc_collins@...>

I have txt file with date/time stamps only. I want to grab the first

19 messages 2008/12/20
[#323205] Re: get first and last line from txt file - how? — Tim Hunter <TimHunter@...> 2008/12/20

Mmcolli00 Mom wrote:

[#323207] Re: get first and last line from txt file - how? — "Yaser Sulaiman" <yaserbuntu@...> 2008/12/20

I'm just wondering..

[#323273] how to make installing Ruby easier for amateurs — Tom Cloyd <tomcloyd@...>

Greetings!

21 messages 2008/12/22

[#323312] Name that data structure! — Simon Chiang <simon.a.chiang@...>

I'm using a data structure that I'm sure has been implemented and

18 messages 2008/12/22
[#323314] Re: Name that data structure! — "Gregory Brown" <gregory.t.brown@...> 2008/12/22

On Mon, Dec 22, 2008 at 5:38 PM, Simon Chiang <simon.a.chiang@gmail.com> wrote:

[#323342] Are all Ruby built-in objects thread safe? — "Just Another Victim of the Ambient Morality" <ihatespam@...>

Are all built-in objects thread safe? For example, if I have an array

23 messages 2008/12/23
[#323346] Re: Are all Ruby built-in objects thread safe? — Yukihiro Matsumoto <matz@...> 2008/12/23

Hi,

[#323519] What does 'Monkey Patching' exactly Mean in Ruby? — "Yaser Sulaiman" <yaserbuntu@...>

According to Wikipedia, a monkey patch[1] is:

36 messages 2008/12/27
[#323813] Re: What does 'Monkey Patching' exactly Mean in Ruby? — Jg W Mittag <JoergWMittag+Usenet@...> 2009/01/02

Phlip wrote:

[#323832] Re: What does 'Monkey Patching' exactly Mean in Ruby? — "David A. Black" <dblack@...> 2009/01/02

Hi --

[#323644] Why Ruby? — Mike Stephens <rubfor@...>

I have never seen or heard of Ruby in a corporate context. The single

35 messages 2008/12/30

[#323668] Ruby 1.9.1 RC1 is released — "Yugui (Yuki Sonoda)" <yugui@...>

Hi, folks

21 messages 2008/12/30

Re: Way to many calls to Dir#[]

From: Brian Candler <b.candler@...>
Date: 2008-12-10 09:04:33 UTC
List: ruby-talk #322355
Tj Holowaychuk wrote:
> Im not using windows either haha. just took a look at the highline 
> source looks like it conditionally supports termios so your right there. 

And win32 too:

$ pwd
/usr/lib/ruby/gems/1.8/gems/highline-1.5.0
$ find . -type f | xargs grep -i win32
./lib/highline/system_extensions.rb:      require "Win32API" 
# See if we're on Windows.
./lib/highline/system_extensions.rb:      CHARACTER_MODE = "Win32API" 
# For Debugging purposes only.
./lib/highline/system_extensions.rb:        Win32API.new("crtdll", 
"_getch", [ ], "L").Call
./lib/highline/system_extensions.rb:        m_GetStdHandle 
= Win32API.new( 'kernel32',
./lib/highline/system_extensions.rb:        m_GetConsoleScreenBufferInfo 
= Win32API.new(
./test/tc_highline.rb:if HighLine::CHARACTER_MODE == "Win32API"
./test/tc_highline.rb:    assert(%w[Win32API termios 
stty].include?(HighLine::CHARACTER_MODE))

However there is only a single require of Win32API, and if it fails a 
LoadError is rescued which should cause it to install termios methods 
instead. It shouldn't attempt to load Win32API again after that.

> I see your point though, if its a long running process I guess 0.35 of a 
> second is not much, just seemed really sketchy to me being new to Ruby

Now I know you're not on Windows, let me look a bit more. Here's what I 
get (P4 2.8GHz, 1.8.6p111, rubygems 1.2.0), giving the second run times 
for each test:

$ time for i in $(seq 1 10); do ruby -rubygems -e0; done

real  0m0.646s
user  0m0.568s
sys  0m0.060s

$ time for i in $(seq 1 10); do ruby -rubygems -e'require "termios"'; 
done

real  0m0.707s
user  0m0.612s
sys  0m0.072s

$ time for i in $(seq 1 10); do ruby -rubygems -e'require "highline"'; 
done

real  0m2.680s
user  0m2.380s
sys  0m0.244s

So there is a substantial startup overhead in including highline, which 
for me is about 0.2s more than just loading ruby + rubygems + termios.

But when I profile this, I find that Dir[] is a very long way down the 
list.

$ ruby -rubygems -rprofile -e'require "highline"'
  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
 23.23     1.05      1.05      248     4.23    23.79  Array#each
  7.08     1.37      0.32     5522     0.06     0.09  Kernel.===
  6.86     1.68      0.31      502     0.62     0.62  Regexp#===
  4.20     1.87      0.19     6987     0.03     0.03  Module#===
  3.32     2.02      0.15     5501     0.03     0.03  Kernel.==
  2.88     2.15      0.13     1664     0.08     0.10  Kernel.dup
  2.88     2.28      0.13      104     1.25    31.73 
Gem::Specification#initialize
  2.43     2.39      0.11      303     0.36     0.83 
Gem::Version#normalize
  2.43     2.50      0.11       25     4.40    47.60 
Kernel.gem_original_require
  2.21     2.60      0.10        1   100.00   140.00  Array#sort
  1.99     2.69      0.09      104     0.87     0.87  IO#read
  1.99     2.78      0.09      209     0.43     0.53 
Gem::Specification#full_name
... skip lots ...
  0.44     4.25      0.02      144     0.14     0.14  Dir#[]
...

(Whilst it's possible that Dir#[] is using a lot more *real* time than 
*CPU* time - and there was a post about fixing profile for this a week 
or two back - you can see from above that the total real time is very 
close to user+sys time in this case. That's what I'd expect when the 
directories are in the VFS cache, that is, no actual disk I/O is done 
when searching through directories)

Sorting by total ms/call, I get:

$ env LC_ALL=C sort -rn -k6 ert | head -20
  0.00     4.52      0.00        1     0.00  4520.00  #toplevel
  0.00     4.52      0.00        1     0.00  4090.00 
Gem::GemPathSearcher#initialize
  0.00     4.52      0.00        1     0.00  3880.00 
Gem::GemPathSearcher#init_gemspecs
  0.00     4.52      0.00        1     0.00  3740.00 
Gem::SourceIndex#from_installed_gems
  0.00     4.52      0.00        1     0.00  3620.00 
Gem::SourceIndex#refresh!
  0.00     4.52      0.00        1     0.00  3620.00 
Gem::SourceIndex#load_gems_in
  0.00     4.52      0.00        1     0.00  3620.00 
Gem::SourceIndex#from_gems_in
  0.00     4.52      0.00        1     0.00  3620.00  Array#reverse_each
  0.00     4.52      0.00        2     0.00  2045.00  Mutex#synchronize
  0.00     4.52      0.00        2     0.00  2045.00  Gem.searcher
  0.00     4.52      0.00        2     0.00  1870.00  Gem.source_index
  0.22     4.33      0.01       24     0.42   225.42  Kernel.require
  2.21     2.60      0.10        1   100.00   140.00  Array#sort
  0.00     4.52      0.00        1     0.00   120.00 
Gem::SourceIndex#installed_spec_directories
  0.00     4.52      0.00        1     0.00   120.00  Gem.set_paths
  0.00     4.52      0.00        1     0.00   120.00  Gem.path
  0.00     4.52      0.00        1     0.00   110.00  Gem.set_home
  0.00     4.52      0.00        1     0.00   110.00  Gem.dir
  0.00     4.52      0.00        2     0.00    60.00 
Gem.ensure_gem_subdirectories
  0.00     4.52      0.00        2     0.00    50.00 
Gem::GemPathSearcher#find
...

So there's a lot of rubygems chomping going on. Optimising that may be 
difficult, I'm afraid. I tried reading the rubygems source once, and 
gave up :-)

Notice that whilst there are 24 calls to Kernel.require, there is only 1 
call to Gem::GemPathSearcher#initialize accounting for most of the work. 
Perhaps highline forces rubygems to do some dependency calculations, 
whereas an itsy-bitsy standalone gem like termios doesn't.

Indeed, when loading only termios, this doesn't seem to be done:

$ ruby -rubygems -rprofile -e'require "termios"' 2>&1 | env LC_ALL=C 
sort -rn -k6 | head
  0.00     0.09      0.00        1     0.00    90.00  #toplevel
 55.56     0.05      0.05        1    50.00    80.00  Array#each
  0.00     0.09      0.00        1     0.00    80.00 
Enumerable.each_with_index
 11.11     0.09      0.01        2     5.00    50.00 
Kernel.gem_original_require
  0.00     0.09      0.00        2     0.00    50.00  Kernel.require
 33.33     0.08      0.03      514     0.06     0.06  Hash#[]=
 time   seconds   seconds    calls  ms/call  ms/call  name
  0.00     0.09      0.00      257     0.00     0.00  Integer#to_int
  0.00     0.09      0.00      257     0.00     0.00  Array#pack
  0.00     0.09      0.00       64     0.00     0.00  String#eql?

Regards,

Brian.
-- 
Posted via http://www.ruby-forum.com/.

In This Thread