Thank you for explaining Richard. That's very nice of you. May be we can have a module that makes some of web2py code executable for faster processing. Something for someone to look at may be.
On Monday, February 6, 2017 at 4:39:49 PM UTC-5, Richard wrote: > > I guess partly for the same reason we can't make cpython faster (GIL - > https://wiki.python.org/moin/GlobalInterpreterLock)... But not only for > this reason of course. But let ask the question differently, why is > clienteside app faster? You move computer processing load to client in many > part, you reduce the size of the data that have to move back and forth as > you only have to transmit json instead of the whole DOM. Also, web2py can > be really fast, it all depends how you use it. For instance if you don't > need auth on every page you can avoid a lot of queries to the backend. The > same is true, you can use auth.has_membership() which triggers many queries > or you can initialize a varibale that you can cache for the duration of the > session. You use to check membership against this cached variable, that way > you avoid many queries to the backend which is most probably the bottleneck > of any application. The drawback is that you can't modify users privileges > once they are connected without maintaining the the cache variable up to > date (which is not that difficult you just have to make sure you update it > each time you manipulate membership) or ask them to logout and login again > when you modify their membership. > > At some point if you really need more speed and you already have make it > sure your app is lean and properly tuned, you have to look on the side of > replication and redundancy... > > You also have to gave a look at "model-less" app paradigm which involve > moving models definition into module which have some drawback. Before, that > make sure you don't defined any function into you models files, since the > code defined there is execute at each request. You can also activate lazy > table ( > http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#Lazy-Tables--a-major-performance-boost > ). > > Also, notice that SSL has it pound in the balance... I had issue recently > since Chrome start to trigger error for certificate using SHA-1 hashing > key... I had to read and create a new private key... The out come despite > having a new secure certificate that pass Chrome validation was that using > Elliptic Curve key (https://www.digicert.com/ecc.htm) ECDSA 256 bits that > give an ssl certificate as secure as RSA 2048 bits (at least it said to be > as secure) which make ssl data encryption much faster. I wasn't able to > properly benchmark the speed improvement, but it seems as much as 25% > faster them my previous certficate. > > Finally, Massimo is looking to find a solution that will allow us develop > client side app within web2py with help of ractivejs/vuejs (vuejs seems > much easier to pickup than ractive and much more well supported so I guess > it will win the battle). He had propose proof of concept in the past : > > https://github.com/mdipierro/w3 > > But until now there were no traction from core developpers. Basically > because they are buzzy fixing issues and improving stuff (and speed : > https://groups.google.com/d/msg/web2py-developers/j6uxYMxo5qI/OQPEpJ5CWIoJ), > porting web2py over python 3 (https://github.com/web2py/web2py/issues/1353) > which turn to be a big undertake as we didn't have a new release for months > now. > > From what I do understand, and I didn't have much time to follow and > contribute much recently, we are trying to make web2py build python 3 > compliant then we will undertake others challenges. > > In either way, once we will have web2py/web3py we will have to rewrite > (your are not forced because you will still be able to use python 2) our > apps, so Massimo is planning to seize the opportunity to break the promise > of backward compatibility and introducing client side goodies into web2py. > At least it's my understanding of what is going on rigth now. > > Have a good day! > > Richard > > > On Mon, Feb 6, 2017 at 11:23 AM, Ron Chatterjee <achatte...@gmail.com > <javascript:>> wrote: > >> Why can't we make web2py faster ? >> >> >> On Thursday, February 2, 2017 at 9:36:34 AM UTC-5, mcm wrote: >>> >>> >>> I agree nice and could be useful in speedy services and we should see if >>> it can be used in front of web2py. >>> >>> But it is more important for the long term that we start to think about >>> leveraging HTTP/2 soon >>> >>> Il giorno mercoledì 1 febbraio 2017 16:23:46 UTC+1, Anthony ha scritto: >>>> >>>> On Wednesday, February 1, 2017 at 4:54:31 AM UTC-5, Massimo Di Pierro >>>> wrote: >>>>> >>>>> I just discovered this: >>>>> >>>>> https://github.com/squeaky-pl/japronto >>>>> >>>>> I am impressed. I like the speed and the semantics. >>>>> >>>> >>>> Seems interesting, though the benchmarks seem a bit contrived. It does >>>> so well because it uses HTTP pipelining with a workload designed to get >>>> maximum benefit from pipelining (24 identical and fast pipelined requests >>>> requiring no work in Python). Since most browsers do not support HTTP >>>> pipelining by default, and most workloads would not benefit so much from >>>> pipelining, this has little real world value. On the other hand, it does >>>> *not >>>> *support HTTP/2 with request multiplexing, which *is *supported by >>>> most browsers and would likely have real benefits for more typical >>>> workloads. >>>> >>>> Regarding the API, how do you think it compares with Sanic >>>> <http://sanic.readthedocs.io/en/latest/index.html> (also based on >>>> uvloop and allowing async handlers)? >>>> >>>> Anthony >>>> >>> -- >> Resources: >> - http://web2py.com >> - http://web2py.com/book (Documentation) >> - http://github.com/web2py/web2py (Source code) >> - https://code.google.com/p/web2py/issues/list (Report Issues) >> --- >> You received this message because you are subscribed to the Google Groups >> "web2py-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to web2py+un...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.