Some updates.
Instead of doing some experiment, I tried to test MoonLightDE since it
did quite similar things.
However, I failed to get all of the components compiled correctly.
I'll try to fix them when I have time to see how it performs.
After a quick skim of the source code of MoonLightDE, I noticed that
it makes extensive use of C++ Micro Services library
(CppMicroService). Alexis, what's the benefit of using that? I found
it a little bit more complicated than needed?
I have another thought about the module architecture.
We can make them modules while retaining the stability of the original
multi-process architecture.
Just do "fork()" from the main process before loading the module, and
the components can be run in different processes, just like they're
now. So the crash of one component does not affect the other one.
This is actually what kdeinit process does.
If we add an option to turn off the "fork()" call, then all components
can run in the same process.
So we can switch between single process and multi-process
architectures on-the-fly with an runtime option.
Forking different components form the same core process is totally
different from launching different binaries.
When all of the components are forked from the same process,
relocation of dynamic libraries only happen "once" and this is exactly
how kdeinit speed up startup of KDE.
With this, we can solve three problems with the same solution.
1. speed up startup but keep current multi-process architecture (by
forking from the main process)
2. optional support of a single-process architecture with the same
code base (even more speed up and resource sharing)
3. Sharing code with MoonLightDE becomes even easier (actually, we
even share the same goal if we do this)

Users and developers who don't want a single-process mode can keep
using multiple process, and still benefit from a faster startup due to
kdeinit-like design.
Users who have limited resource can turn on the experimental
"single-process" option and avoid the fork() call. All modules then
stay in the same process.
What about the new proposal?

Cheers!

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Lxde-list mailing list
Lxde-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxde-list

Reply via email to