Ticket #1074 (closed enhancement: fixed)

Opened 14 months ago

Last modified 14 months ago

Performance issue: Themes, widgetsets

Reported by: Jani Laakso Owned by: Joonas Lehtinen
Priority: blocker Milestone: 5.0.0-beta
Component: undefined Version: 5.0.0-pre
Keywords: Cc: marc.englund@…, joonas.lehtinen@…
Known Issue description:
Hours estimate: 2 Deadline (dd.mm.yyyy):
Known Issue version (since): Known Issue title:
Hours done: Depends to:
Affects documentation: no
Known Issue workaround:
Affects release notes: yes Contract:

Description (last modified by Jani Laakso) (diff)

Every application consumes 300kb because widgetsets (incl. default theme css/imags) are not loaded only once per application.

Biggest hit (242kb) comes from "TestBench?/ITMILL/widgetsets/com.itmill.toolkit.terminal.gwt.DefaultWidgetSet/4424DA0C696B551EEA3D44D9A9105C1B.cache.html" This should be loaded from any user defined place, e.g. "/mystaticfiles/ITMILL/*" => different applications may use cached files

We must allow relocation of widgetsets static files e.g. by web.xml init parameter so download hit is once 300kb and afterwards only one or two packets when starting new application.

---

Quick analysis of what happesn when we publish our first release. 1000 users come quickly to click our demos.

Typical visitor goes through 4 of our demo applications => 1.2Mb required, including 20-30 keep-alive requests with two sockets => 1000 visitors consume 1200Mb and Toolkit servlet serves 25 000 static files => excess load is handled by multiple Tomcat threads

If default widgetset (this contains default theme also) is cached => 0.3Mb required, two requests with single socket => 1000 visitors consume 300Mb => Tomcat is happier (less thread IO)

This must be evaluated before making first public release (slashdot effect).

Change History

Changed 14 months ago by Jani Laakso

  • description modified (diff)

Changed 14 months ago by Jani Laakso

  • hours_left set to 2

I doubt anyone needs to run Servlet under /* URL. If you need to run only "single" application within "root" URL, such as http://toolkit.itmill.com, store index.html there and let it start your application.

=> now static files (ITMILL/*) can be served in the right way using e.g. Apache (or Tomcats defaults means)

Changed 14 months ago by Jani Laakso

See also #1075

Changed 14 months ago by Jani Laakso

Comparing Calculator TK4: 67Kb TK5: 276Kb

CLient-side engine is just bigger..

Changed 14 months ago by Joonas Lehtinen

I am not sure if I understood this one. For TestBench?, the URL should be "<context path>/ITMILL/widgetsets/com.itmill.toolkit.terminal.gwt.DefaultWidgetSet/4424DA0C696B551EEA3D44D9A9105C1B.cache.html"

In this case, all the example that use the same widgetset use also the same cached files.

Changed 14 months ago by Jani Laakso

So, the bug is that /TestBench/ is included within widgetset URL.

Changed 14 months ago by Jani Laakso

  • owner changed from Jani Laakso to Joonas Lehtinen
  • priority changed from major to blocker

Fix it NOW! :-)

Changed 14 months ago by Joonas Lehtinen

  • status changed from new to assigned

Changed 14 months ago by Joonas Lehtinen

  • status changed from assigned to closed
  • resolution set to fixed

Fixed in [2690]

Note: See TracTickets for help on using tickets.