cool! ill def use it! thx On Aug 3, 2011, at 10:15 AM, MiuMeet Support wrote:
> You can fit up to 131'072 elements in there, afterwards you hit the 1mb > entity limit (entity overhead aside, but 100'000 are def possible). > > Put and Get performance are really fantastic, 10ms each, see the blog post. > > -Andrin > > On Wed, Aug 3, 2011 at 9:23 AM, andreas schmid <[email protected]> wrote: > does this also mean that there is no 5000 objects limit on the list? > is the get performance good as the put? > > thx for sharing this. > > On Aug 2, 2011, at 9:04 PM, Ikai Lan (Google) wrote: > >> Thanks Andrin! >> >> If anyone is wondering why this is, it's because the List property is >> serialized and deserialized using protocol buffers. Protocol buffers are >> very useful for things like validation and cross language compatibility, but >> you can sometimes gain some performance benefits by serializing and >> deserializing using native methods. The protocol buffer implementation for >> Python is noticeably slow, even via the native extension (if you can improve >> this - Google wants to hire you), so I'm not surprised techniques like this >> work. >> >> -- >> Ikai Lan >> Developer Programs Engineer, Google App Engine >> plus.ikailan.com | twitter.com/ikai >> >> >> >> On Tue, Aug 2, 2011 at 9:18 AM, Andrin von Rechenberg <[email protected]> >> wrote: >> So you want to store a "very long list of numbers" in your AppEngine Model >> which doesn't need to be indexed. >> >> Well, you could just do this: >> >> class Foo(db.Model): >> numbers = db.ListProperty(int, indexed=False) >> >> However, you will quickly notice that the performance and the memory >> consumption of this sucks if you add thousands of integers to this list. >> >> Instead you should use the native python "array.array" type as the list and >> store it in a BlobProperty. It's up to 30x faster! >> >> I created a library that does exactly this (free, apache 2.0 license): >> http://devblog.miumeet.com/2011/08/much-more-efficient-implementation-of.html >> >> Once you have the library, all you need to do is this to get a huge >> performance boost: >> >> class Foo(db.Model): >> numbers = db.ArrayProperty() >> >> The blogpost also has more details and an appstat comparison. >> >> Cheers & hope you like it >> -Andrin >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine" 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/google-appengine?hl=en. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine" 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/google-appengine?hl=en. > > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" 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/google-appengine?hl=en. > > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" 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/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups "Google App Engine" 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/google-appengine?hl=en.
