Bunpro load speed problems!

Hey, Guys! Thank you for your efforts. Great site, except it’s so terrible slow, that I drop tear or two remembering dial-up internet.

For example, https://bunpro.jp/learn

  1. Do you really need 8000(!) lines on your page ?
  2. Do you really need stripe js on this page ?
  3. How about minify https://unpkg.com/xregexp/xregexp-all.js ?
    & etc

Please, look into optimization. I can collaborate with you to try to speed up loading!

13 Likes

I agree completely. The site is very slow, which can make it hard to use.

8 Likes

I agree as well, doing anything on bunpro is crazy slow. It takes me forever to do reviews because every time I submit I have to wait like 5 seconds for the app to acknowledge anything happened. It’s honestly the biggest thing keeping me from actually using this, as I use Wanikani all the time since it’s so much more performant.

3 Likes

Just seems like an unnecessarily bloated mess.

@Pushindawood Are these performance issues being prioritized in any way? What countries do you have servers in?

@staffmemberj @osdiab @Sergei

The performance issues are actually number one on my list of things to tackle.

The biggest issue I am having with it is that outside of issues with the cellular network or having throttled internet, I can’t duplicate performance issues anything longer than a second or two in load times. (Excluding the /learn route which just needs to be reworked)

That isn’t to say that the problem doesn’t exist, just that all I can try is to make general optimizations (things that I need to do) and hope they will lead to better performance.

2 Likes

Two seconds is still a bit long, but I’ve had pages take 5-10 seconds to load. Again, where are the servers? What you see in Japan could differ greatly compared to what I see in the U.S.

2 Likes

I agree two seconds is too long but for me that is an exception not the norm.

The servers are actually located in the US.

That makes it even stranger…

1 Like

I know some page specific issues as well as some site wide issues that are causing performance problems and I will start by fixing those!

3 Likes

Ok that explains some of my performance woes - I’m in Japan, not USA so probably significant latency issues there.

But separately there are other strategies you can use so that users don’t have to wait so long for stuff to happen - most obvious to me is prefetching and batching data, and then batching updates async. When I do a study session it can just load the entire session up front + answers into memory, and then as I respond it can confirm on screen, but flush to servers asynchronously so that the user doesn’t have to wait on an HTTP round trip every time they interact with the site.

That’s what the app I use for WaniKani on my phone does (Tsurukame), and it makes it a joy to use. In fact it just keeps everything I’m in the process of studying in local storage so that I can use the app fully offline, and just sync up / get new content when I reconnect to the network. So no delays on anything ever, i never have to wait on network calls in practice, just the occasional “new lessons in my queue don’t show up until I hit the network” which is basically unnoticeable to me. That’s even better.

If opening HTTP connections is causing slow times you can also approach it by leaving a websocket open to save on HTTP/TCP handshake overheads, but it seems overkill to me. I’d just go with caching + batch sync strat above, avoiding the network altogether and batching together what would be a bunch of round trips into one, is much more sure to be performant. In my case almost certainly network delay is a major issue, since I’m just geographically far.

3 Likes

I think it’s a pretty viable strategy since studying in bunpro, like wanikani, is pretty single-player, so in most cases there won’t be any concurrent syncing issues; and for those that are, if apis for this kind of thing are designed to be idempotent then the downside of concurrent data usage in the context of this app - I’m studying on both my phone and my laptop? Why? - are pretty minimal, you might get some redundant lessons.

If you want some help with designing how something like this would work I’m glad to help btw lol in Tokyo fyi

3 Likes

Though yeah performance issues can be a bunch of different stuff, not trying to step on any toes but thought I’d give my 2c as a software guy myself haha

2 Likes

@Pushindawood I just had it take 3+ seconds to load the All Grammar Points page and then 10+ seconds(!) to load my profile page. A speed test shows I’m getting 100Mbps download speed, so I still don’t think it’s on my end. Subsequent loads were much faster, I assume due to caching. I looked at the network tab in Chrome and realized that you are loading all grammar points on those pages on page load. It might help if you loaded more data dynamically as the user scrolls or opens sections.

For example, do you really need to load all upcoming grammar points when navigating to the profile? I usually go to my profile to see how many grammar points I’ve done, not to see upcoming grammar points. If that’s a common pattern, you could make the performance of that page much better for many users by not loading that data until they open the Show Upcoming Grammar section.

Similarly, you might want to only load some grammar points on the All Grammar Points page up front, and load more as the user scrolls. You could redesign the page to be “smarter” based on what grammar points the user has learned or is likely to learn based on their settings. This sounds much more challenging, and I don’t really have any specific ideas. But it might be worth looking into at some point.

6 Likes

Am still experiencing serious delays in connection (often stops) from here in Tokyo.
Has been like this now for many months; great app apart from this which is why I’m now on a lifetime license but making a serious plea to have this resolved with servers in Japan etc
Any ETA for these connections issues to be resolved as it is quite painful to use from Japan right now?

Unfortunately the audio also does not work.
I have the same results no matter the machine or network I connect from.

I’m currently in Japan (Kyoto) and I am not experiencing such issues. I do however not use the Study button but pick individual lessons because it didn’t work well with my ad blocker when I started using BP over a year ago (I don’t know if this has changed). And I haven’t had a problem with audio recently. Sometimes I have noticed that it can be good to clear the cache for BP though if it starts to get slow.

Thank you for your reply; yes, the issue is prevalent when in study mode when new material is being introduced.
ETA for a fix from BunPro staff please.