gitcoinco / web

Grow Open Source
https://gitcoin.co
Other
1.79k stars 772 forks source link

Gitcoin is slow (rewrite everything in D?) #6605

Closed vporton closed 3 years ago

vporton commented 4 years ago

User Story

I am a contributor to GitCoin.

Why Is this Needed

It takes much time to start it at localhost. Loading pages on my localhost (i5+16GB DDR3) is slow (especially when I load the first page after docker-compose start). I suppose it is not enough fast on the real server, too.

As a radical solution I propose to rewrite GitCoin in D programming language instead of Python.

It is not something unexpected to become 500 times faster (not really, because the DB remains the same). You could also save some carbon for electricity of your server. D is essentially as powerful as Python but hundreds of times faster. D is also more reliable by using static types and more advanced asserts than in Python. We could develop and deploy Python and D versions of the site in parallel, having the same DB for both. (It requires carefully checking that every DB migration in duplicated in both languages, but otherwise should be no problem), eventually replacing the old site with the new one.

For compilation of D not to take too much time, we may consider to split GotCoin into several modules (like micorservices), for example grants would be a separate executable and route it with some kind of HTTP proxy (Apache, Nginx, or our own specialized proxy written in D).

owocki commented 4 years ago

try setting SUPRESS_DEBUG_TOOLBAR=1 in your .env and restarting docker. that should increase speed by abou t2x

On Wed, May 6, 2020 at 12:02 PM Victor Porton notifications@github.com wrote:

User Story

I am a contributor to GitCoin. Why Is this Needed

It takes much time to start it at localhost. Loading pages on my localhost (i5+16GB DDR3) is slow (especially when I load the first page after docker-compose start). I suppose it is not enough fast on the real server, too.

As a radical solution I propose to rewrite GitCoin in D programming language instead of Python.

It is not something unexpected to become 500 times faster (not really, because the DB remains the same). You could also save some carbon for electricity of your server. D is essentially as powerful as Python but hundreds of times faster. D is also more reliable by using static types and more advanced asserts than in Python. We could develop and deploy Python and D versions of the site in parallel, having the same DB for both. (It requires carefully checking that every DB migration in duplicated in both languages, but otherwise should be no problem), eventually replacing the old site with the new one.

For compilation of D not to take too much time, we may consider to split GotCoin into several modules (like micorservices), for example grants would be a separate executable and route it with some kind of HTTP proxy (Apache, Nginx, or our own specialized proxy written in D).

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gitcoinco/web/issues/6605, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD5PCNZ4IO2QM2WUSBJUE3RQGQ4DANCNFSM4M2U6KQQ .

--

@owocki http://www.twitter.com/owocki


gitcoin is live and has generated over $4.6mm for Open Source Software - see our results https://gitcoin.co/results

thelostone-mc commented 4 years ago

And also stop the web_chat_1 container ! Things get super slow if you haven't configured chat`