There are also faster YAML dumpers out there.  A recent Portland code sprint
produced ZAML, a work-in-progress that offers (if I recall correctly)
something like a 14x speed boost over vanilla YAML.dump
http://github.com/hallettj/zaml/tree/master/zaml.rb

YAML's slowness has been a pain point, but we don't have to sacrifice
portability.

On Thu, Oct 9, 2008 at 5:17 AM, Stephen Celis <[EMAIL PROTECTED]>wrote:

>
> Yes; after Fred's post I did a bit more research and realize it's a
> big no for portable apps. Not an impossible hurdle to deal with, but
> not a desirable default. I also realized that AR in its current state
> has no simple interface for such an option: quoting's serialization is
> abstracted away from table and model information. While MySQL handled
> Marshal swimmingly in string columns, I don't think other adapters
> would agree.
>
> I've tried to stay away from serialize where possible, but am dealing
> with it on a current project and noticed complaints from others
> regarding the speed at which large groups of objects with serialized
> attributes are instantiated from the database. YAML has been the
> culprit.
>
> Stephen
>
>
> On Oct 9, 2:45 am, Izidor Jerebic <[EMAIL PROTECTED]> wrote:
> > To add additional point for -1: Marshal uses a binary format and does
> > not guarantee any compatibility with anything except the ruby on the
> > computer which created it. Marshal uses internal format versioning
> > numbers which do not correspond to ruby versions. This means your
> > database backups are potentially non-portable to other OS/ruby/
> > computer version. This in itself makes this option a non-starter, imho.
> >
> > You could add the option, but it should never become a default. And
> > even an option should come with a big warning.
> >
> > izidor
> >
> > On 8.10.2008, at 18:23, Frederick Cheung wrote:
> >
> >
> >
> >
> >
> > > On 8 Oct 2008, at 17:07, Stephen Celis wrote:
> >
> > >> Here's a ticket for a simple patch to use Marshal instead of YAML for
> > >> attribute serialization. Marshaling is significantly faster (see in
> > >> link), and fixes some YAML load issues (including an outstanding
> > >> ticket).
> >
> > >>http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/11.
> ..
> >
> > > While the option is fair enough, I don't thing all existing apps
> > > wouldn't want this turned on "silently":
> > > - if other people use your database yaml is ok as there are parsers
> > > for it in many languages whereas Marshal would be a PITA
> > > - if your existing column is not a blob column (which it wouldn't have
> > > to be previously since yaml generates plain text), the database will
> > > throw a hissy fit (or just truncate the data) when you try to insert a
> > > character that is not legal in the charset used.
> > > - should you be calling string_to_binary if the column supports it ?
> >
> > > Fred
> > >> Simple enough?
> >
> > >> Stephen
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to