Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Resource usage of google Go vs Python and Java on Appengine

Will google Go use less resources than Python and Java on Appengine? Are the instance startup times for go faster than Java's and Python's startup times?

Is the go program uploaded as binaries or source code and if it is uploaded as source code is it then compiled once or at each instance startup?

In other words: Will I benefit from using Go in app engine from a cost perspective? (only taking to account the cost of the appengine resources not development time)

like image 269
Per Arneng Avatar asked Nov 07 '11 14:11

Per Arneng


2 Answers

Will google Go use less resources than Python and Java on Appengine? Are the instance startup times for go faster than Java's and Python's startup times?

Yes, Go instances have a lower memory than Python and Java (< 10 MB).

Yes, Go instances start faster than Java and Python equivalent because the runtime only needs to read a single executable file for starting an application.

Also even if being atm single threaded, Go instances handle incoming request concurrently using goroutines, meaning that if 1 goroutine is waiting for I/O another one can process an incoming request.

Is the go program uploaded as binaries or source code and if it is uploaded as source code is it then compiled once or at each instance startup?

Go program is uploaded as source code and compiled (once) to a binary when deploying a new version of your application using the SDK.

In other words: Will I benefit from using Go in app engine from a cost perspective?

The Go runtime has definitely an edge when it comes to performance / price ratio, however it doesn't affect the pricing of other API quotas as described by Peter answer.

like image 121
proppy Avatar answered Oct 01 '22 22:10

proppy


The cost of instances is only part of the cost of your app. I only use the Java runtime right now, so I don't know how much more or less efficient things would be with Python or Go, but I don't imagine it will be orders of magnitude different. I do know that instances are not the only cost you need to consider. Depending on what your app does, you may find API or storage costs are more significant than any minor differences between runtimes. All of the API costs will be the same with whatever runtime you use.

Language "might" affect these costs:

  • On-demand Frontend Instances
  • Reserved Frontend Instances
  • Backed Instances

Language Independent Costs:

  • High Replication Datastore (per gig stored)
  • Outgoing Bandwidth (per gig)
  • Datastore API (per ops)
  • Blobstore API storge (per gig)
  • Email API (per email)
  • XMPP API (per stanza)
  • Channel API (per channel)
like image 37
Peter Recore Avatar answered Oct 01 '22 22:10

Peter Recore