Ask a Question related to Ruby, Design and Development.

  1. #1

    Default Marshal efficiency

    Folks,

    As an intermediate step in a small software system that performs a large
    amount of data gathering, I am using Marshal to store processed results,
    so that other programs can use this information.

    At first, this was an excellent solution: couldn't be easier, and it
    demonstrated good performance. However, as I am collecting more and more
    data, the period of time required to serialise the data to disk is
    balooning - it seems quadratically. The current size of my data is: an
    array with 10000 moderately-sized objects. The size on disk is only
    around 900K, and it took at least 10 minutes to write it.

    Part of the problem is my approach:
    - read the marshalled data
    - gather some more data into the array
    - write the marshalled data

    Each iteration produces a few thousand more data elements, but obviously
    has to write _all_ of the data back to disk.

    Can anyone suggest a better approach to storing the data? I am open to
    all suggestions, but I am hoping for a very easy solution. At work, where
    the use of Ruby is not admired, I don't want to expand the software
    dependencies if I can avoid it. I don't have much time, either, so I need
    a simple solution.

    This is using ruby 1.6.5 (I know I'm bad...) on Cygwin.

    Thanks,
    Gavin






    Gavin Sinclair Guest

  2. Similar Questions and Discussions

    1. Web Site Efficiency
      Hope i'm in the right group. I'm developing a small non-commercial website to run on windows 2000 pro with IIS. How many simultaneous users (approx)...
    2. Marshal.GetActiveObject throws an exception in a C# webservice but
      ....it does not throw the exception in a C# form. The same code works perfectly in C# forms application. It seems like the computer noes not let...
    3. Database Efficiency
      What is the most efficient way to build an extract database? Specifically, I want to read, via ODBC, one non-MS-Access database table with dozens...
    4. Ruby 1.8 and Marshal.load/Marshal.dump
      Where can I get detailed information about now to properly Marshal.dump and Marshal.load objects in Ruby 1.8? I read in 'ruby-dev summary...
    5. Can't marshal MatchData?
      Folks, I understand there are 4 kinds of things you can't marshal: singleton methods, IO objects, bindings, and ... and ... someone will fill in....
  3. #2

    Default Re: Marshal efficiency [precompiled 1.8 for cygwin?]

    > Folks,
    >
    I wrote:
    > As an intermediate step in a small software system that performs a large
    > amount of data gathering, I am using Marshal to store processed results,
    > so that other programs can use this information.
    >
    > At first, this was an excellent solution: couldn't be easier, and it
    > demonstrated good performance. However, as I am collecting more and
    > more data, the period of time required to serialise the data to disk is
    > balooning - it seems quadratically. [...]

    Soon after I sent this, I decided to search the mailing list for existing
    information (yes, I often get things backwards...). It turns out that
    Marshal is known to be much faster in 1.7/1.8 than in 1.6.

    The mailing list does not, however, lead me to a precompiled 1.8 for
    Cygwin. So for future posterity, here it is, courtesy of Google:

    [url]http://mirrors.sunsite.dk/ruby/binaries/cygwin/1.8[/url]

    Gavin




    Gavin Sinclair Guest

  4. #3

    Default Re: Marshal efficiency

    Joel VanderWerf <vjoel@PATH.Berkeley.EDU> wrote in message news:<3F17759B.2030100@path.berkeley.edu>...
    > Gavin Sinclair wrote:
    > > Folks,
    > >
    > > As an intermediate step in a small software system that performs a large
    ....
    > > a simple solution.
    Try using ruby 1.8 and tell us the results!
    Dr AK Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139