The book of inspiration

July 28, 2009

Stress testing Google App Engine

Filed under: jsc — Tags: , , — zproxy @ 6:29 am

So I have this idea to utilize Google App Engine as a multiplayer game lobby. Flash games tend to peak high upon the very first days of the release. As there are quotas for free service I had to run some tests to get an idea what to expect. At this time I am using memcache as a game server registrar. The registration was set to expire within 1 minute. I prepared a stressor program to issue game server registrations an a continuous loop.

count

requests

In 12 hours I had issued about 40000 game server registrations.  It seems the CPU time is quite high. The average response time was also 22 seconds. Now I need to implement the logic that a game would first try to connect another game before promoting itself as a server.

Update: You can use a naked domain with google app engine with an URL redirect.

Advertisements

April 8, 2009

Google App Engine SDK for Java

Filed under: life — Tags: , , , , , — zproxy @ 10:05 am

Powered by Google App Engine

App Engine runs Java applications using the Java 6 virtual machine (JVM).

  • CPU Time: 6.5 hours of CPU time per day
  • Bandwidth: 1 gigabyte of data transferred in and out of the application per day
  • Stored Data & Email Recipients: unchanged

I think I will create an example how to write for Google App Engine in C# via my jsc compiler within this month.

Unless ofcourse they will support MSIL natively which I dont think will happen…

You may wonder whatever happened to MS Java or maybe J#

Some feedback from Slashdot on the Google App Engine topic:

[…] It’s not the restrictions, it’s the implementation. Normally, existing Java code could just be compiled on the embedded system, and compiler errors would specifically identify security reasons for specific classes/methods/etc being disabled. Google removed the classes entirely, so the developer will just get IDontKnowWTFThatClassIs exceptions instead, which are less informative.

It also contravenes existing standards, sort of like making “dangerous” files invisible to unprivileged users in *NIX (via some sort of arcane black magic, perhaps a modified (munged) shell or something…) instead of just setting appropriate file permissions.

Did you know that your application will be running on multiple VM’s. So we do actually have threading support, it is just i another form.

[…] It even supports loading bytecode generated at run time. That means that our new Java runtime can support any language with a compiler that targets the JVM

You need to take extra care to enable HTTP sessions to which you could write data. It may look like a vendor lock in solution whether it is or is not remains to be decided…

(more…)

Blog at WordPress.com.