Hi, is there any way to replace REXML with Hpricot for rendering XML? I am using Jruby so cant use libxml, and need to significantly increase the speed of XML rendering. Thanks Adam --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
AD wrote:> is there any way to replace REXML with Hpricot for rendering XML? I am > using Jruby so cant use libxml, and need to significantly increase the > speed of XML rendering.What''s wrong with Builder::XmlMarkup (iirc)? Hpricot uses a C module to get fast - like libxml. So if you can''t use one in Jruby... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I think I actually meant XML::Builder, I was under the initial impression this was actually a REXML Library. At any rate my performance metrics show that 60-70% is done via "Rendering" b/c of some complicated XML generation so I am looking for some optimization mechanisms here. HPricot is faster than Builder and REXML and is supported in JRuby (running it now). So basically I am looking to replace XML::Builder with something faster , that is not libXML (like Hpricot) Adam On Thu, Jun 26, 2008 at 4:57 PM, Phlip <phlip2005-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > AD wrote: > > > is there any way to replace REXML with Hpricot for rendering XML? I am > > using Jruby so cant use libxml, and need to significantly increase the > > speed of XML rendering. > > What''s wrong with Builder::XmlMarkup (iirc)? > > Hpricot uses a C module to get fast - like libxml. So if you can''t use one > in > Jruby... > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Jun 27, 3:08 am, AD <straightfl...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I think I actually meant XML::Builder, I was under the initial impression > this was actually a REXML Library. > At any rate my performance metrics show that 60-70% is done via "Rendering" > b/c of some complicated XML generation so I am looking for some optimization > mechanisms here. HPricot is faster than Builder and REXML and is supported > in JRuby (running it now). > > So basically I am looking to replace XML::Builder with something faster , > that is not libXML (like Hpricot) >There is a jruby version of hpricot. Builder and Rexml are unrelated. The only bit I''ve ever found to be slow about builder is that it tries to be a bit too clever with its escaping and tries to work out all sorts of stuff that I didn''t need. Overriding the _escape method to just replace &, <, > sped things up for me Fred> On Thu, Jun 26, 2008 at 4:57 PM, Phlip <phlip2...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > AD wrote: > > > > is there any way to replace REXML with Hpricot for rendering XML? I am > > > using Jruby so cant use libxml, and need to significantly increase the > > > speed of XML rendering. > > > What''s wrong with Builder::XmlMarkup (iirc)? > > > Hpricot uses a C module to get fast - like libxml. So if you can''t use one > > in > > Jruby...--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
AD wrote:> So basically I am looking to replace XML::Builder with something faster > , that is not libXML (like Hpricot)Have you time-tested and profiled your code & tests to see what''s fast? it''s usually a surprise... --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
well I am just noticing when the actions get rendered, its always like (Rendering (78%)) and some of the XML rendering just seems slow in relation to the time for the DB query. Do you have any profile recommendations besides ruby-prof ? On Fri, Jun 27, 2008 at 5:02 AM, Phlip <phlip2005-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > AD wrote: > > > So basically I am looking to replace XML::Builder with something faster > > , that is not libXML (like Hpricot) > > Have you time-tested and profiled your code & tests to see what''s fast? > it''s > usually a surprise... > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
here is some real world output.. Any feedback is welcome, notice the very high render time: Rendering channels/index Completed in 3.38310 (0 reqs/sec) | Rendering: 1.38117 (40%) | DB: 0.48588 (14%) | 200 OK [http://dev1.domain.com/users/1/2008/05/28/index.xml] [http://dev1.domain.com/users/1/2008/05/28/index.xml] Thread ID: 3067917240 Total: 2.920000 %self total self wait child calls name 5.82 0.42 0.17 0.00 0.25 18281 Fixnum#xchr 4.45 0.14 0.13 0.00 0.01 79 Array#select 4.11 0.56 0.12 0.00 0.44 2288 Array#map 3.08 0.10 0.09 0.00 0.01 29 ActiveRecord::Associations::ClassMethods#collection_accessor_methods 2.74 0.11 0.08 0.00 0.03 54266 Kernel#== 1.71 0.16 0.05 0.00 0.11 248 Hash#each 1.71 0.08 0.05 0.00 0.03 54327 Hash#[] 1.37 0.06 0.04 0.00 0.02 288 Module#define_method 1.37 0.04 0.04 0.00 0.00 15 Mysql::Result#each_hash 1.37 0.04 0.04 0.00 0.00 108 Array#- 1.03 0.03 0.03 0.00 0.00 39128 Hash#default 1.03 0.03 0.03 0.00 0.00 324 Module#constants 1.03 0.03 0.03 0.00 0.00 56670 Fixnum#= Thread ID: 3067917860 Total: 0.770000 On Fri, Jun 27, 2008 at 8:34 AM, AD <straightflush-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> well I am just noticing when the actions get rendered, its always like > (Rendering (78%)) and some of the XML rendering just seems slow in relation > to the time for the DB query. > > Do you have any profile recommendations besides ruby-prof ? > > > On Fri, Jun 27, 2008 at 5:02 AM, Phlip <phlip2005-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > >> >> AD wrote: >> >> > So basically I am looking to replace XML::Builder with something faster >> > , that is not libXML (like Hpricot) >> >> Have you time-tested and profiled your code & tests to see what''s fast? >> it''s >> usually a surprise... >> >> >> >> >> >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 27 Jun 2008, at 13:50, AD wrote:> here is some real world output.. Any feedback is welcome, notice the > very high render time: >Fixnum.xchr is builder''s escaping stuff. See my previous tip for possible ways out. Fred> Rendering channels/index > Completed in 3.38310 (0 reqs/sec) | Rendering: 1.38117 (40%) | DB: > 0.48588 (14%) | 200 OK [http://dev1.domain.com/users/1/2008/05/28/index.xml > ] > [http://dev1.domain.com/users/1/2008/05/28/index.xml] > > Thread ID: 3067917240 > Total: 2.920000 > > %self total self wait child calls name > 5.82 0.42 0.17 0.00 0.25 18281 Fixnum#xchr > 4.45 0.14 0.13 0.00 0.01 79 Array#select > 4.11 0.56 0.12 0.00 0.44 2288 Array#map > 3.08 0.10 0.09 0.00 0.01 29 > ActiveRecord::Associations::ClassMethods#collection_accessor_methods > 2.74 0.11 0.08 0.00 0.03 54266 Kernel#==> 1.71 0.16 0.05 0.00 0.11 248 Hash#each > 1.71 0.08 0.05 0.00 0.03 54327 Hash#[] > 1.37 0.06 0.04 0.00 0.02 288 > Module#define_method > 1.37 0.04 0.04 0.00 0.00 15 > Mysql::Result#each_hash > 1.37 0.04 0.04 0.00 0.00 108 Array#- > 1.03 0.03 0.03 0.00 0.00 39128 Hash#default > 1.03 0.03 0.03 0.00 0.00 324 Module#constants > 1.03 0.03 0.03 0.00 0.00 56670 Fixnum#=> > > Thread ID: 3067917860 > Total: 0.770000 > > On Fri, Jun 27, 2008 at 8:34 AM, AD <straightflush-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > well I am just noticing when the actions get rendered, its always > like (Rendering (78%)) and some of the XML rendering just seems slow > in relation to the time for the DB query. > > Do you have any profile recommendations besides ruby-prof ? > > > On Fri, Jun 27, 2008 at 5:02 AM, Phlip <phlip2005-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > AD wrote: > > > So basically I am looking to replace XML::Builder with something > faster > > , that is not libXML (like Hpricot) > > Have you time-tested and profiled your code & tests to see what''s > fast? it''s > usually a surprise... > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I believe you are referencing this method
def _escape(text)
text.to_xs
end
How do I go about overriding this ?
On Fri, Jun 27, 2008 at 8:54 AM, Frederick Cheung <
frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>
> On 27 Jun 2008, at 13:50, AD wrote:
>
> > here is some real world output.. Any feedback is welcome, notice the
> > very high render time:
> >
> Fixnum.xchr is builder''s escaping stuff. See my previous tip for
> possible ways out.
>
> Fred
> > Rendering channels/index
> > Completed in 3.38310 (0 reqs/sec) | Rendering: 1.38117 (40%) | DB:
> > 0.48588 (14%) | 200 OK [
> http://dev1.domain.com/users/1/2008/05/28/index.xml
> > ]
> > [http://dev1.domain.com/users/1/2008/05/28/index.xml]
> >
> > Thread ID: 3067917240
> > Total: 2.920000
> >
> > %self total self wait child calls name
> > 5.82 0.42 0.17 0.00 0.25 18281 Fixnum#xchr
> > 4.45 0.14 0.13 0.00 0.01 79 Array#select
> > 4.11 0.56 0.12 0.00 0.44 2288 Array#map
> > 3.08 0.10 0.09 0.00 0.01 29
> > ActiveRecord::Associations::ClassMethods#collection_accessor_methods
> > 2.74 0.11 0.08 0.00 0.03 54266 Kernel#==>
> 1.71 0.16 0.05 0.00 0.11 248 Hash#each
> > 1.71 0.08 0.05 0.00 0.03 54327 Hash#[]
> > 1.37 0.06 0.04 0.00 0.02 288
> > Module#define_method
> > 1.37 0.04 0.04 0.00 0.00 15
> > Mysql::Result#each_hash
> > 1.37 0.04 0.04 0.00 0.00 108 Array#-
> > 1.03 0.03 0.03 0.00 0.00 39128 Hash#default
> > 1.03 0.03 0.03 0.00 0.00 324 Module#constants
> > 1.03 0.03 0.03 0.00 0.00 56670 Fixnum#=>
>
> >
> > Thread ID: 3067917860
> > Total: 0.770000
> >
> > On Fri, Jun 27, 2008 at 8:34 AM, AD
<straightflush-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> > well I am just noticing when the actions get rendered, its always
> > like (Rendering (78%)) and some of the XML rendering just seems slow
> > in relation to the time for the DB query.
> >
> > Do you have any profile recommendations besides ruby-prof ?
> >
> >
> > On Fri, Jun 27, 2008 at 5:02 AM, Phlip
<phlip2005-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> >
> > AD wrote:
> >
> > > So basically I am looking to replace XML::Builder with something
> > faster
> > > , that is not libXML (like Hpricot)
> >
> > Have you time-tested and profiled your code & tests to see
what''s
> > fast? it''s
> > usually a surprise...
> >
> >
> >
> >
> >
> >
> > >
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On 27 Jun 2008, at 14:09, AD wrote:> I believe you are referencing this method > > def _escape(text) > text.to_xs > end > > How do I go about overriding this ? >same way as you override any other method class Builder::XmlMarkup def _escape(text) result = text.dup result.gsub!("&", "&") result.gsub!("<", "<") result.gsub!(">", ">") end end in my case what i did was xml = Builder::XmlMarkup.new(:target => $stdout, :indent => 2) xml.instruct! def xml.output(string) result = string.dup result.gsub!("&", "&") result.gsub!("<", "<") result.gsub!(">", ">") self << result end and then call output rather than text whenever i wanted to output stuff. There was a thread a while back on one of the ruby list about the fastest way to do this - do you do it in one pass fixing up each of the 3 possible substitutions in one go, or in 3 passes like i did, and concluded that the above version was the fastest. It might be different if you had really long strings. See also http://bogomips.org/fast_xs/ which is a c implementation of the escaping thing (haven''t tried this, but is probably the fastest of all). Fred> On Fri, Jun 27, 2008 at 8:54 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > wrote: > > > On 27 Jun 2008, at 13:50, AD wrote: > > > here is some real world output.. Any feedback is welcome, notice the > > very high render time: > > > Fixnum.xchr is builder''s escaping stuff. See my previous tip for > possible ways out. > > Fred > > Rendering channels/index > > Completed in 3.38310 (0 reqs/sec) | Rendering: 1.38117 (40%) | DB: > > 0.48588 (14%) | 200 OK [http://dev1.domain.com/users/1/2008/05/28/index.xml > > ] > > [http://dev1.domain.com/users/1/2008/05/28/index.xml] > > > > Thread ID: 3067917240 > > Total: 2.920000 > > > > %self total self wait child calls name > > 5.82 0.42 0.17 0.00 0.25 18281 Fixnum#xchr > > 4.45 0.14 0.13 0.00 0.01 79 Array#select > > 4.11 0.56 0.12 0.00 0.44 2288 Array#map > > 3.08 0.10 0.09 0.00 0.01 29 > > ActiveRecord::Associations::ClassMethods#collection_accessor_methods > > 2.74 0.11 0.08 0.00 0.03 54266 Kernel#==> > 1.71 0.16 0.05 0.00 0.11 248 Hash#each > > 1.71 0.08 0.05 0.00 0.03 54327 Hash#[] > > 1.37 0.06 0.04 0.00 0.02 288 > > Module#define_method > > 1.37 0.04 0.04 0.00 0.00 15 > > Mysql::Result#each_hash > > 1.37 0.04 0.04 0.00 0.00 108 Array#- > > 1.03 0.03 0.03 0.00 0.00 39128 Hash#default > > 1.03 0.03 0.03 0.00 0.00 324 > Module#constants > > 1.03 0.03 0.03 0.00 0.00 56670 Fixnum#=> > > > > > Thread ID: 3067917860 > > Total: 0.770000 > > > > On Fri, Jun 27, 2008 at 8:34 AM, AD <straightflush-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > well I am just noticing when the actions get rendered, its always > > like (Rendering (78%)) and some of the XML rendering just seems slow > > in relation to the time for the DB query. > > > > Do you have any profile recommendations besides ruby-prof ? > > > > > > On Fri, Jun 27, 2008 at 5:02 AM, Phlip <phlip2005-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > AD wrote: > > > > > So basically I am looking to replace XML::Builder with something > > faster > > > , that is not libXML (like Hpricot) > > > > Have you time-tested and profiled your code & tests to see what''s > > fast? it''s > > usually a surprise... > > > > > > > > > > > > > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 27 Jun 2008, at 14:25, Frederick Cheung wrote:> > See also http://bogomips.org/fast_xs/ which is a c implementation of > the escaping thing (haven''t tried this, but is probably the fastest > of all). >to expand on that, just gem install fast_xs. It''s faster than what I had previously Fred --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
yea fast_xs looks better, but right now its native C only so no Jruby
support.
Is it possible to generated XML without using builder ? If the XML
structure is not too complicated, and I am OK sacrificing some of the
validation/substitution, could I just @results.each { |r| } and print some
XML ?
Thx
Adam
On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung <
frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>
> On 27 Jun 2008, at 14:25, Frederick Cheung wrote:
> >
> > See also http://bogomips.org/fast_xs/ which is a c implementation of
> > the escaping thing (haven''t tried this, but is probably the
fastest
> > of all).
> >
> to expand on that, just gem install fast_xs. It''s faster than what
I
> had previously
>
> Fred
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On 27 Jun 2008, at 15:09, AD wrote:> yea fast_xs looks better, but right now its native C only so no > Jruby support. > > Is it possible to generated XML without using builder ? If the XML > structure is not too complicated, and I am OK sacrificing some of > the validation/substitution, could I just @results.each { |r| } and > print some XML ? >Course you can, it''s just text after all! I got a significant speed boost overwriting _escape so that might be enough for you. Fred> Thx > Adam > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > wrote: > > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote: > > > > See also http://bogomips.org/fast_xs/ which is a c implementation of > > the escaping thing (haven''t tried this, but is probably the fastest > > of all). > > > to expand on that, just gem install fast_xs. It''s faster than what I > had previously > > Fred > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Did you just drop this in application.rb ?
class Builder::XmlMarkup
def _escape(text)
result = text.dup
result.gsub!("&", "&")
result.gsub!("<", "<")
result.gsub!(">", ">")
end
end
On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung <
frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>
> On 27 Jun 2008, at 15:09, AD wrote:
>
> > yea fast_xs looks better, but right now its native C only so no
> > Jruby support.
> >
> > Is it possible to generated XML without using builder ? If the XML
> > structure is not too complicated, and I am OK sacrificing some of
> > the validation/substitution, could I just @results.each { |r| } and
> > print some XML ?
> >
> Course you can, it''s just text after all! I got a significant
speed
> boost overwriting _escape so that might be enough for you.
>
> Fred
>
> > Thx
> > Adam
> >
> > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung <
> frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
> > > wrote:
> >
> >
> > On 27 Jun 2008, at 14:25, Frederick Cheung wrote:
> > >
> > > See also http://bogomips.org/fast_xs/ which is a c implementation
of
> > > the escaping thing (haven''t tried this, but is probably
the fastest
> > > of all).
> > >
> > to expand on that, just gem install fast_xs. It''s faster than
what I
> > had previously
> >
> > Fred
> >
> >
> >
> >
> >
> > >
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On 27 Jun 2008, at 15:40, AD wrote:> Did you just drop this in application.rb ? > > class Builder::XmlMarkup > def _escape(text) > result = text.dup > result.gsub!("&", "&") > result.gsub!("<", "<") > result.gsub!(">", ">") > end > endjust in a script i was writing. (but it should be ok in application.rb), with the exception of one line which i left out :-) it should be def _escape(text) result = text.dup result.gsub!("&", "&") result.gsub!("<", "<") result.gsub!(">", ">") result end jruby is causing you to miss out on the fast_xs fun, but you might be able to rewrite that method in java, with similar effects. Fred> > > On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > wrote: > > > On 27 Jun 2008, at 15:09, AD wrote: > > > yea fast_xs looks better, but right now its native C only so no > > Jruby support. > > > > Is it possible to generated XML without using builder ? If the XML > > structure is not too complicated, and I am OK sacrificing some of > > the validation/substitution, could I just @results.each { |r| } and > > print some XML ? > > > Course you can, it''s just text after all! I got a significant speed > boost overwriting _escape so that might be enough for you. > > Fred > > > Thx > > Adam > > > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > wrote: > > > > > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote: > > > > > > See also http://bogomips.org/fast_xs/ which is a c > implementation of > > > the escaping thing (haven''t tried this, but is probably the > fastest > > > of all). > > > > > to expand on that, just gem install fast_xs. It''s faster than what I > > had previously > > > > Fred > > > > > > > > > > > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frederick,
Thanks for the help but i am getting an error. I dropped this outside the
ApplicationController but is throwing an error
class Builder::XmlMarkup
def _escape(text)
result = text.dup
result.gsub!("&", "&")
result.gsub!("<", "<")
result.gsub!(">", ">")
result
end
end
ActionView::TemplateError (You have a nil object when you didn''t expect
it!
The error occurred while evaluating nil.gsub) on line #1 of
channels/system.xml.builder:
1: xml.instruct!
2: xml.response {
3: xml.result {
4: xml.status "Success"
On Fri, Jun 27, 2008 at 10:54 AM, Frederick Cheung <
frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>
> On 27 Jun 2008, at 15:40, AD wrote:
>
> > Did you just drop this in application.rb ?
> >
> > class Builder::XmlMarkup
> > def _escape(text)
> > result = text.dup
> > result.gsub!("&", "&")
> > result.gsub!("<", "<")
> > result.gsub!(">", ">")
> > end
> > end
>
> just in a script i was writing. (but it should be ok in
> application.rb), with the exception of one line which i left out :-)
>
> it should be
> def _escape(text)
> result = text.dup
> result.gsub!("&", "&")
> result.gsub!("<", "<")
> result.gsub!(">", ">")
> result
> end
>
> jruby is causing you to miss out on the fast_xs fun, but you might be
> able to rewrite that method in java, with similar effects.
>
> Fred
>
>
> >
> >
> > On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung <
> frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
> > > wrote:
> >
> >
> > On 27 Jun 2008, at 15:09, AD wrote:
> >
> > > yea fast_xs looks better, but right now its native C only so no
> > > Jruby support.
> > >
> > > Is it possible to generated XML without using builder ? If the
XML
> > > structure is not too complicated, and I am OK sacrificing some of
> > > the validation/substitution, could I just @results.each { |r| }
and
> > > print some XML ?
> > >
> > Course you can, it''s just text after all! I got a significant
speed
> > boost overwriting _escape so that might be enough for you.
> >
> > Fred
> >
> > > Thx
> > > Adam
> > >
> > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung <
> frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
> > > > wrote:
> > >
> > >
> > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote:
> > > >
> > > > See also http://bogomips.org/fast_xs/ which is a c
> > implementation of
> > > > the escaping thing (haven''t tried this, but is
probably the
> > fastest
> > > > of all).
> > > >
> > > to expand on that, just gem install fast_xs. It''s faster
than what I
> > > had previously
> > >
> > > Fred
> > >
> > >
> > >
> > >
> > >
> > > >
> >
> >
> >
> >
> >
> > >
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
On 27 Jun 2008, at 17:49, AD wrote:> Frederick, > > Thanks for the help but i am getting an error. I dropped this > outside the ApplicationController but is throwing an error > > class Builder::XmlMarkup > def _escape(text) > result = text.dup > result.gsub!("&", "&") > result.gsub!("<", "<") > result.gsub!(">", ">") > result > end > endWeird, works well enough for me. the error you got looks like what you would get with the version without the result on the last line. Fred> > > ActionView::TemplateError (You have a nil object when you didn''t > expect it! > The error occurred while evaluating nil.gsub) on line #1 of channels/ > system.xml.builder: > 1: xml.instruct! > 2: xml.response { > 3: xml.result { > 4: xml.status "Success" > > > > On Fri, Jun 27, 2008 at 10:54 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > wrote: > > > On 27 Jun 2008, at 15:40, AD wrote: > > > Did you just drop this in application.rb ? > > > > class Builder::XmlMarkup > > def _escape(text) > > result = text.dup > > result.gsub!("&", "&") > > result.gsub!("<", "<") > > result.gsub!(">", ">") > > end > > end > > just in a script i was writing. (but it should be ok in > application.rb), with the exception of one line which i left out :-) > > it should be > def _escape(text) > result = text.dup > result.gsub!("&", "&") > result.gsub!("<", "<") > result.gsub!(">", ">") > result > end > > jruby is causing you to miss out on the fast_xs fun, but you might be > able to rewrite that method in java, with similar effects. > > Fred > > > > > > > > On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > wrote: > > > > > > On 27 Jun 2008, at 15:09, AD wrote: > > > > > yea fast_xs looks better, but right now its native C only so no > > > Jruby support. > > > > > > Is it possible to generated XML without using builder ? If the > XML > > > structure is not too complicated, and I am OK sacrificing some of > > > the validation/substitution, could I just @results.each { |r| } > and > > > print some XML ? > > > > > Course you can, it''s just text after all! I got a significant speed > > boost overwriting _escape so that might be enough for you. > > > > Fred > > > > > Thx > > > Adam > > > > > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > wrote: > > > > > > > > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote: > > > > > > > > See also http://bogomips.org/fast_xs/ which is a c > > implementation of > > > > the escaping thing (haven''t tried this, but is probably the > > fastest > > > > of all). > > > > > > > to expand on that, just gem install fast_xs. It''s faster than > what I > > > had previously > > > > > > Fred > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
do you have it in application.rb ? On Fri, Jun 27, 2008 at 1:10 PM, Frederick Cheung < frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > On 27 Jun 2008, at 17:49, AD wrote: > > > Frederick, > > > > Thanks for the help but i am getting an error. I dropped this > > outside the ApplicationController but is throwing an error > > > > class Builder::XmlMarkup > > def _escape(text) > > result = text.dup > > result.gsub!("&", "&") > > result.gsub!("<", "<") > > result.gsub!(">", ">") > > result > > end > > end > > Weird, works well enough for me. the error you got looks like what you > would get with the version without the result on the last line. > > Fred > > > > > > ActionView::TemplateError (You have a nil object when you didn''t > > expect it! > > The error occurred while evaluating nil.gsub) on line #1 of channels/ > > system.xml.builder: > > 1: xml.instruct! > > 2: xml.response { > > 3: xml.result { > > 4: xml.status "Success" > > > > > > > > On Fri, Jun 27, 2008 at 10:54 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > wrote: > > > > > > On 27 Jun 2008, at 15:40, AD wrote: > > > > > Did you just drop this in application.rb ? > > > > > > class Builder::XmlMarkup > > > def _escape(text) > > > result = text.dup > > > result.gsub!("&", "&") > > > result.gsub!("<", "<") > > > result.gsub!(">", ">") > > > end > > > end > > > > just in a script i was writing. (but it should be ok in > > application.rb), with the exception of one line which i left out :-) > > > > it should be > > def _escape(text) > > result = text.dup > > result.gsub!("&", "&") > > result.gsub!("<", "<") > > result.gsub!(">", ">") > > result > > end > > > > jruby is causing you to miss out on the fast_xs fun, but you might be > > able to rewrite that method in java, with similar effects. > > > > Fred > > > > > > > > > > > > > On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > wrote: > > > > > > > > > On 27 Jun 2008, at 15:09, AD wrote: > > > > > > > yea fast_xs looks better, but right now its native C only so no > > > > Jruby support. > > > > > > > > Is it possible to generated XML without using builder ? If the > > XML > > > > structure is not too complicated, and I am OK sacrificing some of > > > > the validation/substitution, could I just @results.each { |r| } > > and > > > > print some XML ? > > > > > > > Course you can, it''s just text after all! I got a significant speed > > > boost overwriting _escape so that might be enough for you. > > > > > > Fred > > > > > > > Thx > > > > Adam > > > > > > > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > > wrote: > > > > > > > > > > > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote: > > > > > > > > > > See also http://bogomips.org/fast_xs/ which is a c > > > implementation of > > > > > the escaping thing (haven''t tried this, but is probably the > > > fastest > > > > > of all). > > > > > > > > > to expand on that, just gem install fast_xs. It''s faster than > > what I > > > > had previously > > > > > > > > Fred > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I also noticed that the _escape function is in xmlbase.rb not xmlmarkup.rb. Not sure if that is what is breaking here... On Fri, Jun 27, 2008 at 1:10 PM, Frederick Cheung < frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > On 27 Jun 2008, at 17:49, AD wrote: > > > Frederick, > > > > Thanks for the help but i am getting an error. I dropped this > > outside the ApplicationController but is throwing an error > > > > class Builder::XmlMarkup > > def _escape(text) > > result = text.dup > > result.gsub!("&", "&") > > result.gsub!("<", "<") > > result.gsub!(">", ">") > > result > > end > > end > > Weird, works well enough for me. the error you got looks like what you > would get with the version without the result on the last line. > > Fred > > > > > > ActionView::TemplateError (You have a nil object when you didn''t > > expect it! > > The error occurred while evaluating nil.gsub) on line #1 of channels/ > > system.xml.builder: > > 1: xml.instruct! > > 2: xml.response { > > 3: xml.result { > > 4: xml.status "Success" > > > > > > > > On Fri, Jun 27, 2008 at 10:54 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > wrote: > > > > > > On 27 Jun 2008, at 15:40, AD wrote: > > > > > Did you just drop this in application.rb ? > > > > > > class Builder::XmlMarkup > > > def _escape(text) > > > result = text.dup > > > result.gsub!("&", "&") > > > result.gsub!("<", "<") > > > result.gsub!(">", ">") > > > end > > > end > > > > just in a script i was writing. (but it should be ok in > > application.rb), with the exception of one line which i left out :-) > > > > it should be > > def _escape(text) > > result = text.dup > > result.gsub!("&", "&") > > result.gsub!("<", "<") > > result.gsub!(">", ">") > > result > > end > > > > jruby is causing you to miss out on the fast_xs fun, but you might be > > able to rewrite that method in java, with similar effects. > > > > Fred > > > > > > > > > > > > > On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > wrote: > > > > > > > > > On 27 Jun 2008, at 15:09, AD wrote: > > > > > > > yea fast_xs looks better, but right now its native C only so no > > > > Jruby support. > > > > > > > > Is it possible to generated XML without using builder ? If the > > XML > > > > structure is not too complicated, and I am OK sacrificing some of > > > > the validation/substitution, could I just @results.each { |r| } > > and > > > > print some XML ? > > > > > > > Course you can, it''s just text after all! I got a significant speed > > > boost overwriting _escape so that might be enough for you. > > > > > > Fred > > > > > > > Thx > > > > Adam > > > > > > > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > > wrote: > > > > > > > > > > > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote: > > > > > > > > > > See also http://bogomips.org/fast_xs/ which is a c > > > implementation of > > > > > the escaping thing (haven''t tried this, but is probably the > > > fastest > > > > > of all). > > > > > > > > > to expand on that, just gem install fast_xs. It''s faster than > > what I > > > > had previously > > > > > > > > Fred > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 27 Jun 2008, at 18:50, AD wrote:> I also noticed that the _escape function is in xmlbase.rb not > xmlmarkup.rb. Not sure if that is what is breaking here... >XmlMarkup inherits from XmlBase so it shouldn''t make any difference. I didn''t have it in application.rb but I doubt that would make a difference. Fred> On Fri, Jun 27, 2008 at 1:10 PM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > wrote: > > > On 27 Jun 2008, at 17:49, AD wrote: > > > Frederick, > > > > Thanks for the help but i am getting an error. I dropped this > > outside the ApplicationController but is throwing an error > > > > class Builder::XmlMarkup > > def _escape(text) > > result = text.dup > > result.gsub!("&", "&") > > result.gsub!("<", "<") > > result.gsub!(">", ">") > > result > > end > > end > > Weird, works well enough for me. the error you got looks like what you > would get with the version without the result on the last line. > > Fred > > > > > > ActionView::TemplateError (You have a nil object when you didn''t > > expect it! > > The error occurred while evaluating nil.gsub) on line #1 of > channels/ > > system.xml.builder: > > 1: xml.instruct! > > 2: xml.response { > > 3: xml.result { > > 4: xml.status "Success" > > > > > > > > On Fri, Jun 27, 2008 at 10:54 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > wrote: > > > > > > On 27 Jun 2008, at 15:40, AD wrote: > > > > > Did you just drop this in application.rb ? > > > > > > class Builder::XmlMarkup > > > def _escape(text) > > > result = text.dup > > > result.gsub!("&", "&") > > > result.gsub!("<", "<") > > > result.gsub!(">", ">") > > > end > > > end > > > > just in a script i was writing. (but it should be ok in > > application.rb), with the exception of one line which i left out :-) > > > > it should be > > def _escape(text) > > result = text.dup > > result.gsub!("&", "&") > > result.gsub!("<", "<") > > result.gsub!(">", ">") > > result > > end > > > > jruby is causing you to miss out on the fast_xs fun, but you might > be > > able to rewrite that method in java, with similar effects. > > > > Fred > > > > > > > > > > > > > On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > wrote: > > > > > > > > > On 27 Jun 2008, at 15:09, AD wrote: > > > > > > > yea fast_xs looks better, but right now its native C only so no > > > > Jruby support. > > > > > > > > Is it possible to generated XML without using builder ? If the > > XML > > > > structure is not too complicated, and I am OK sacrificing some > of > > > > the validation/substitution, could I just @results.each { |r| } > > and > > > > print some XML ? > > > > > > > Course you can, it''s just text after all! I got a significant > speed > > > boost overwriting _escape so that might be enough for you. > > > > > > Fred > > > > > > > Thx > > > > Adam > > > > > > > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung <frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > > wrote: > > > > > > > > > > > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote: > > > > > > > > > > See also http://bogomips.org/fast_xs/ which is a c > > > implementation of > > > > > the escaping thing (haven''t tried this, but is probably the > > > fastest > > > > > of all). > > > > > > > > > to expand on that, just gem install fast_xs. It''s faster than > > what I > > > > had previously > > > > > > > > Fred > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
updating this thread for everyone''s sake. I had to drop it into an initializers file in config/initializers and it worked. however performance is not much better 36% of the time was just on gsub. Thread ID: 3063488800 Total: 2.750000 %self total self wait child calls name 36.36 1.00 1.00 0.00 0.00 38508 String#gsub! 16.36 1.62 0.45 0.00 1.17 1008 Builder::XmlBase#method_missing-5 3.64 0.10 0.10 0.00 0.00 1282 <Class::File>#expand_path 2.55 1.15 0.07 0.00 1.08 12836 Builder::XmlBase#_escape 2.18 0.06 0.06 0.00 0.00 16 Mysql::Result#each_hash 1.82 2.14 0.05 0.00 2.09 1097 Array#each-1 1.82 0.05 0.05 0.00 0.00 12836 String#initialize_copy 1.82 0.07 0.05 0.00 0.02 1015 ActiveRecord::AttributeMethods#read_attribute 1.45 0.04 0.04 0.00 0.00 31114 Fixnum#= 1.45 0.04 0.04 0.00 0.00 14171 Symbol#to_s 1.45 0.04 0.04 0.00 0.00 2159 Hash#initialize_copy 1.45 0.04 0.04 0.00 0.00 4432 Kernel#instance_variable_set 1.09 0.20 0.03 0.00 0.17 1008 Builder::XmlBase#method_missing-6 1.09 0.03 0.03 0.00 0.00 8262 Builder::XmlMarkup#_text 1.09 0.42 0.03 0.00 0.39 1126 Hash#each 1.09 2.62 0.03 0.00 2.59 102 Array#each 1.09 0.08 0.03 0.00 0.05 2154 <Class::ActiveRecord::Base>#instantiate On Fri, Jun 27, 2008 at 2:05 PM, Frederick Cheung < frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > On 27 Jun 2008, at 18:50, AD wrote: > > > I also noticed that the _escape function is in xmlbase.rb not > > xmlmarkup.rb. Not sure if that is what is breaking here... > > > XmlMarkup inherits from XmlBase so it shouldn''t make any difference. I > didn''t have it in application.rb but I doubt that would make a > difference. > > Fred > > On Fri, Jun 27, 2008 at 1:10 PM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > wrote: > > > > > > On 27 Jun 2008, at 17:49, AD wrote: > > > > > Frederick, > > > > > > Thanks for the help but i am getting an error. I dropped this > > > outside the ApplicationController but is throwing an error > > > > > > class Builder::XmlMarkup > > > def _escape(text) > > > result = text.dup > > > result.gsub!("&", "&") > > > result.gsub!("<", "<") > > > result.gsub!(">", ">") > > > result > > > end > > > end > > > > Weird, works well enough for me. the error you got looks like what you > > would get with the version without the result on the last line. > > > > Fred > > > > > > > > > ActionView::TemplateError (You have a nil object when you didn''t > > > expect it! > > > The error occurred while evaluating nil.gsub) on line #1 of > > channels/ > > > system.xml.builder: > > > 1: xml.instruct! > > > 2: xml.response { > > > 3: xml.result { > > > 4: xml.status "Success" > > > > > > > > > > > > On Fri, Jun 27, 2008 at 10:54 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > wrote: > > > > > > > > > On 27 Jun 2008, at 15:40, AD wrote: > > > > > > > Did you just drop this in application.rb ? > > > > > > > > class Builder::XmlMarkup > > > > def _escape(text) > > > > result = text.dup > > > > result.gsub!("&", "&") > > > > result.gsub!("<", "<") > > > > result.gsub!(">", ">") > > > > end > > > > end > > > > > > just in a script i was writing. (but it should be ok in > > > application.rb), with the exception of one line which i left out :-) > > > > > > it should be > > > def _escape(text) > > > result = text.dup > > > result.gsub!("&", "&") > > > result.gsub!("<", "<") > > > result.gsub!(">", ">") > > > result > > > end > > > > > > jruby is causing you to miss out on the fast_xs fun, but you might > > be > > > able to rewrite that method in java, with similar effects. > > > > > > Fred > > > > > > > > > > > > > > > > > > On Fri, Jun 27, 2008 at 10:30 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > > wrote: > > > > > > > > > > > > On 27 Jun 2008, at 15:09, AD wrote: > > > > > > > > > yea fast_xs looks better, but right now its native C only so no > > > > > Jruby support. > > > > > > > > > > Is it possible to generated XML without using builder ? If the > > > XML > > > > > structure is not too complicated, and I am OK sacrificing some > > of > > > > > the validation/substitution, could I just @results.each { |r| } > > > and > > > > > print some XML ? > > > > > > > > > Course you can, it''s just text after all! I got a significant > > speed > > > > boost overwriting _escape so that might be enough for you. > > > > > > > > Fred > > > > > > > > > Thx > > > > > Adam > > > > > > > > > > On Fri, Jun 27, 2008 at 10:05 AM, Frederick Cheung < > frederick.cheung-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org > > > > > > wrote: > > > > > > > > > > > > > > > On 27 Jun 2008, at 14:25, Frederick Cheung wrote: > > > > > > > > > > > > See also http://bogomips.org/fast_xs/ which is a c > > > > implementation of > > > > > > the escaping thing (haven''t tried this, but is probably the > > > > fastest > > > > > > of all). > > > > > > > > > > > to expand on that, just gem install fast_xs. It''s faster than > > > what I > > > > > had previously > > > > > > > > > > Fred > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---