On Mon, 1 Jun 2020, Tim Mooney wrote:

In regard to: [OpenIndiana-discuss] ICU update and rebuilds, Aur?lien...:

ICU is being updated to a non-ABI compatible version and quite a few
components need a rebuild...so the server will be quite busy and
unavailable at times in the coming 10 hours.
I would suggest postponing any update...

I looked at updating ICU about 6 months ago, saw the list of dependencies,
and decided to tackle other packaging updates that didn't seem so
insurmountable.

GraphicsMagick has had this to say about ICU in its release notes for some time:

* It has been discovered that the 'ICU' library (a perhaps 30MB C++
  library) which is now often a libxml2 dependendency causes huge
  process initialization overhead.  This is noticed as unexpected
  slowness when GraphicsMagick utilities are used to process small to
  medium sized files.  The time to initialize the 'ICU' library is
  often longer than the time that GraphicsMagick would otherwise
  require to read the input file, process the image, and write the
  output file.  If the 'ICU' dependency can not be avoided, then make
  sure to use the modules build so there is only impact for file
  formats which require libxml2.  Please lobby the 'ICU' library
  developers to change their implementation to avoid long start-up
  times due to merely linking with the library.

Besides the build issues, I suggest taking care about how ICU is deployed and linked in the system. It appears that ICU expects that applications using it are long-lived, have a lot of resources, and can afford to take a long time to start up. An incidental linkage of ICU to satisfy a few apps requirements may have the unintended consequence of making many other apps slow and memory-hungry. I don't think that we want OpenIndiana to feel sluggish and slow.

It is my guess that the ICU shared libraries use C++ static constructors (or a shared library equivalent) to perform expensive/protracted initialization when the shared library is loaded, regardless of if its functionality will ever actually be used! Just linking with the library (without invoking any API which might use it) afflicts the dependent application.

An optional libxml2 dependency often brings in this steaming pile and thus afflicts the many applications which link with libxml2.

My mind was boggled when I saw apparently trivial commands taking a substantial portion of a second under Linux. I expect that the situation would be worse with Illumos.

Bob
--
Bob Friesenhahn
[email protected], http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/
Public Key,     http://www.simplesystems.org/users/bfriesen/public-key.txt

_______________________________________________
openindiana-discuss mailing list
[email protected]
https://openindiana.org/mailman/listinfo/openindiana-discuss

Reply via email to