Performance Comparison GWT Transpiler with MacBook Pro M1 Pro processor

484 views
Skip to first unread message

lofid...@gmail.com

unread,
Oct 28, 2021, 6:38:45 PM10/28/21
to GWT Users
Hi All,

I wrote a short comparison about GWT Transpiler with MacBook Pro M1 Pro processor.


Enjoy!

Craig Mitchell

unread,
Oct 28, 2021, 10:15:33 PM10/28/21
to GWT Users
After Apple threatened me with legal action for writing an Android app, I've steered clear of any Apple product.  But, wow, those M1 chips are amazing!

lofid...@gmail.com

unread,
Oct 29, 2021, 4:44:43 AM10/29/21
to GWT Users
Oh,  that's not good... :-(

Actually I'm only a user of MacBook but private I don't use any iPhones, etc. Too expensive...

Yes and Frank Hossfeld will get a M1Max and he'll try the same to compare the GWT transpilation time... I cannot wait...

2 minutes 23 secs is the record... damn fast...

Cheers,
Lofi

lofid...@gmail.com

unread,
Oct 29, 2021, 4:45:38 AM10/29/21
to GWT Users
I updated the article with Linux Ubuntu and Marco adds using non-native JDK on M1Pro... not good...

Hamid Razoki

unread,
Oct 29, 2021, 12:18:07 PM10/29/21
to google-we...@googlegroups.com
Hi i did same comparison for my big monster gwt projet .

We use gwt 2.5 with maven 3.3 jdk 1.8 . in a windows server 2016 ( 8cpu , 64go ram)

We got  between 50min to 1h10min for one permutation. 

Do you have any susggestion to make it short .

Thx

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/e71c313a-939d-43eb-96fe-dc4b22e610f2n%40googlegroups.com.

Craig Mitchell

unread,
Oct 30, 2021, 4:12:54 AM10/30/21
to GWT Users
Sounds like you have a real monolith.  These sort of projects usually need to be split apart into seperate services.

How many lines of code is your client?

lofid...@gmail.com

unread,
Oct 30, 2021, 6:33:56 AM10/30/21
to GWT Users
Agree with craig...

In my experience it could be front end (GWT, TypeScript) or back end (Spring), no difference. The web or backend apps could become huge.

In this case you need to cleanup and make them smaller pieces...

Design Pattern = Microservices / Micro UIs / Turducken for GWT


This applies also to all type of apps (front end, back end, desktop, whatsoever).

Thanks, Lofi

Hamid Razoki

unread,
Oct 30, 2021, 6:44:40 AM10/30/21
to google-we...@googlegroups.com
Yes is a big monolith maven project splited on 43 gwt module . 

lofid...@gmail.com

unread,
Oct 31, 2021, 8:30:59 AM10/31/21
to GWT Users
Ahh you already have split the monolith webapp into 43 Maven modules (one Maven module == one GWT module)? So this is actually already better than ONE monolith Maven project with all the GWT modules (yes there is also such a project 😅).

So you actually don't need to rebuild everything and can work independently per Maven == GWT module?

Now I don't understand the problem... 😉😅

Cheers, Lofi

lofid...@gmail.com

unread,
Nov 16, 2021, 4:16:05 PM11/16/21
to GWT Users
An update to my performance test article with GWT and now M1Max:


Insane... fast... only 1m13s with -T 1C

This is the record now 😅

Jens

unread,
Nov 17, 2021, 4:32:38 AM11/17/21
to GWT Users
Shouldn't really matter if M1 Pro or M1 Max, given that both have the same CPU. Also the doubled memory bandwidth of the M1 Max shouldn't matter too much, if at all. Have you run the benchmarks multiple times? I am pretty sure the 10s difference will become much smaller when using mean numbers of multiple runs.

In my opinion the M1 Pro is the perfect chip for development unless you also do graphic intense work. With less GPU cores you also get slightly better battery life. 

Nevertheless, the M1 performance gain is pretty nice, given that the MacBook Pro will be barely warm.

-- J.

lofid...@gmail.com

unread,
Nov 17, 2021, 6:13:53 AM11/17/21
to GWT Users
Hi Jens,

those MacBook Pros are not mine :-( 

But yes, I asked them to run the build multiple times and took the fastest time... 12s faster for M1Max is not much... but still ;-)

Yes, never thought that the build could be so fast... ;-)

Frank Hossfeld

unread,
Dec 2, 2021, 6:06:06 AM12/2/21
to GWT Users
I did some tests with one of my larger GWT projects. It takes 3:55 on my "old" MacBook Pro 16" i9 2.4 GHz, 64 GB RAM. Same project build on a new MacBook Pro M1 Max 64 GB takes roundabout 2:00. That's an incredible improvement. 

And, most important, you do not hear a fan ... the new MacBook does the job without any noise ... 

I agree with Jens. I don't hink, that there is a huge difference in performance Pro and Max 

lofid...@gmail.com

unread,
Dec 2, 2021, 4:26:27 PM12/2/21
to GWT Users
@Frank: Wow half of the time, 100% faster, that's really crazy!

Maybe next year ... to get a new one 😉

Jens

unread,
Dec 6, 2021, 4:32:15 AM12/6/21
to GWT Users
I did some tests with one of my larger GWT projects. It takes 3:55 on my "old" MacBook Pro 16" i9 2.4 GHz, 64 GB RAM. Same project build on a new MacBook Pro M1 Max 64 GB takes roundabout 2:00. That's an incredible improvement. 

Is that project public? Then I would try it with my M1 Pro 32gb which is IMHO the best value for developers, unless you do graphics stuff.

-- J. 

Frank Hossfeld

unread,
Jan 11, 2022, 2:17:08 PM1/11/22
to GWT Users
No, sorry ... closed source. Yep, I agree with. Don't think, that the graphics CPUs will have an impact of the compile time.
So, the M1 Pro is a great choice for developers. Now I am waiting for the next Mac Pro ...

Shawn Asamoto-Brown

unread,
Jan 12, 2022, 3:12:42 AM1/12/22
to google-we...@googlegroups.com
I kinda like the Max 64GB.  I'm pushing 54GB used for eclipse (running an appengine dev and GWT server) during a build.  My upload to google cloud is slow so after the build I can easily start developing again while it's deploying.

I also use a ramdisk and set the GWT SuperDev mode to use that with  -workDir /Users/me/.tmpdisk/GWT_RAM_DISK.  Then build with an ant task and add this to the gwtc java task for building.

<sysproperty key="gwt.persistentunitcachedir" value="/Users/me/.tmpdisk/GWT_RAM_DISK"/>


No benchmarks but probably the biggest benefit is debugging which I still do in Eclipse via SDGB.

I haven't been able to get Eclipse to run natively as macOS AArch64 is only available from the 2021-12 version which just borks my project.  It seems to be a conflict with the google-cloud-plugin I use for appengine.  Still 2021-09 with emulated Eclipse is a major improvement especially since the dev server and build processes can be run natively.

Anyway, 32GB on a pro ordered today is about a month to get delivery and 64GB on a max is about two months.  I got a 64GB max with 32 GPUs (maybe I can use those for machine learning) as it was the only way to get more than 16GB of memory without waiting so long and I had to move suddenly and couldn't bring my iMac.  

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.

Shawn Asamoto-Brown

unread,
Jan 13, 2022, 2:39:12 AM1/13/22
to google-we...@googlegroups.com
Just to correct myself ...

I haven't been able to get Eclipse to run natively as macOS AArch64 is only available from the 2021-12 version which just borks my project.  It seems to be a conflict with the google-cloud-plugin I use for appengine.  Still 2021-09 with emulated Eclipse is a major improvement especially since the dev server and build processes can be run natively. 

Eclipse 2021-12 runs fine with AArch64.  I used the following from the Eclipse Market place which is what caused the trouble — Eclipse m2e - Maven support in Eclipse IDE 

And AArch64 is available before 2021-12 (4.22).  That the first version for a distributed J2EE download though you can get an earlier version and add in J2EE support.

And SDBG debugging still works (debugging in eclipse).  I wasn’t able to build the SDBG for Java 11 anymore (I remember it being easy last time) but was able to use the one I’d previously build.

S

Craig Mitchell

unread,
Jan 13, 2022, 6:46:31 AM1/13/22
to GWT Users
>  I haven't been able to get Eclipse to run natively as macOS AArch64 is only available from the 2021-12 version which just borks my project.  It seems to be a conflict with the google-cloud-plugin I use for appengine.

Leon Pennings

unread,
Jan 15, 2022, 7:19:48 AM1/15/22
to GWT Users
For around a 1000 euro, you can build a desktop that is faster compiling than any laptop.
And on linux the memory is used a lot more efficient than on a mac, so you need less.
That being said - I have a macbook when I travel. But in the office and at home I switched to working on desktops about 5 yrs ago.



Op woensdag 12 januari 2022 om 09:12:42 UTC+1 schreef Shawn:

lofid...@gmail.com

unread,
Jan 15, 2022, 10:38:21 AM1/15/22
to GWT Users
@leon.p:

This would be interesting...  Could you try to build the project as I mentioned in my article? To see what time we would get there?

Here is the article: 


and


Record is: 

1. Without -T 1C clean install: 2m21s
2. With -T 1C clean install: 1m13s

Would like to see if someone can get faster than this 😉

Thanks, Lofi

Shawn

unread,
Jan 15, 2022, 8:46:22 PM1/15/22
to GWT Users
Hi,

01:11 min was the best I could get with an Apple M1 Max, 64GB.  

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary for gwt-boot-samples 1.0.0-SNAPSHOT:

[INFO] 

[INFO] gwt-boot-sample-basic .............................. SUCCESS [ 46.823 s]

[INFO] gwt-boot-sample-collection ......................... SUCCESS [01:07 min]

[INFO] gwt-boot-sample-elemento-core ...................... SUCCESS [ 53.763 s]

[INFO] gwt-boot-sample-elemento-template .................. SUCCESS [ 53.487 s]

[INFO] gwt-boot-sample-rxgwt .............................. SUCCESS [01:00 min]

[INFO] gwt-boot-sample-domino-rest ........................ SUCCESS [01:11 min]

[INFO] gwt-boot-sample-ui-gwtbootstrap3 ................... SUCCESS [01:03 min]

[INFO] gwt-boot-sample-ui-gwtmaterial ..................... SUCCESS [01:08 min]

[INFO] gwt-boot-sample-ui-domino .......................... SUCCESS [01:11 min]

[INFO] gwt-boot-sample-ui-domino-dagger2 .................. SUCCESS [01:10 min]

[INFO] gwt-boot-sample-ui-vue-gwt ......................... SUCCESS [01:00 min]

[INFO] gwt-boot-sample-ui-dncomponents .................... SUCCESS [01:07 min]

[INFO] gwt-boot-samples ................................... SUCCESS [  0.181 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  01:11 min (Wall Clock)

[INFO] Finished at: 2022-01-15T12:39:42-10:00

[INFO] ------------------------------------------------------------------------

Shawn

Leon Pennings

unread,
Jan 16, 2022, 4:17:36 AM1/16/22
to GWT Users

My current machine has an AMD Ryzen 5 5600X, 32GB mem - this was around a 900-1000 euro build from late last year.
I installed the same jdk and used the same mvn (see screenshots)

For normal mvn clean install I had 02:24 and for the mvn -T 1C clean install I had 1:33

I think for another 2-300 euro's for a better processor I could do a lot better still.

Leon.









Op zondag 16 januari 2022 om 02:46:22 UTC+1 schreef Shawn:
Screen Shot 2022-01-16 at 09.43.11.png
Screen Shot 2022-01-16 at 09.41.07.png

lofid...@gmail.com

unread,
Jan 16, 2022, 6:07:45 AM1/16/22
to GWT Users
Hi All,

thanks a lot for the data, really appreciate this 🙏

Apple M1 Max 64: 1m11s (identical with the test in my second article M1 Max)

and Linux AMD (which is much cheaper 😊): 1m33s 
... almost identical with M1 Pro: 1m25s (my first article)

So, for desktop we could just use Linux AMD, cheaper and fast enough 😅

Thanks a lot!
Lofi

Moweb Technologies

unread,
Jan 19, 2022, 3:06:59 AM1/19/22
to GWT Users
I agree with you.


DeclanLawton | Consultant
Moweb Technologies Pvt. Ltd.

Reply all
Reply to author
Forward
0 new messages