Bug 63554 - Put every application in different CPU process
Summary: Put every application in different CPU process
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
4.1.0.0.alpha0+ Master
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
: 131686 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-04-15 12:28 UTC by Cleber Santz
Modified: 2020-07-01 13:58 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cleber Santz 2013-04-15 12:28:25 UTC
Today if I open a Text, 2 spreadsheets and 1 presentation they all will be running at "soffice.bin" process. If I need work with a huge spreadsheet ( >10 hundred lines, several columns and many formulas) LibreOffice sometimes "freezes" waiting to finish the operation (Column resize, formula update, etc) and this kind of operations take sometimes up to 30min. I know that huge documents sometimes take too long to process and that's will not be a problem for the user if he still can work with others opened documents, but because all LibreOffice documents are all opened in the "soffice.bin" if one document stops/freeze all others documents that I have opened will freeze too. If we could have every document in a different CPU process we will still can work with others documents even if one document is freezed.
Comment 1 Jorendc 2013-04-15 13:50:46 UTC
Thanks for reporting.

Seems interesting to see some developers input here. I'm not aware if it is possible, and if so how hard it is to implement. (seems quite hard).

But, as far I can see this is a valid request. Therefore I mark it as an enhancement request and NEW.

Kind regards,
Joren
Comment 2 Eike Rathke 2013-04-15 14:21:59 UTC
This would need to make all code thread safe. Which may not be entirely impossible but would take more than huge effort. More promising probably would be to start thread safety where possible and have parts of the applications run in different threads. Specifically for Calc, work is continuously ongoing into that direction, but it will need much work and take much time.

Summing up, the general "one thread per document" is a nice wish, but IMHO not something we need to have to linger around in the bug tracker.

Just my 0.02
Comment 3 Markus Mohrhard 2013-04-15 17:57:13 UTC
And of course starting two instances with different user profiles will help you already with that.
Comment 4 Cleber Santz 2013-04-15 18:08:35 UTC
What do you mean with "different user profiles" ? 2 different users, one for each application ? Of course this works but is not usefull, especially on MS Windows.

I think that, starting each app (Calc, Writer, Impress, etc) in a different CPU process, like MS Office does, can be one initial step.
Comment 5 NISZ LibreOffice Team 2020-03-30 12:03:41 UTC
*** Bug 131686 has been marked as a duplicate of this bug. ***
Comment 6 Luke Kendall 2020-07-01 13:39:22 UTC
It seems to me that each person commenting on this request has misread what the original poster asked.

They didn't ask for LO to be running in separate threads.  They asked if they could each run as a separate process.

If each document is run as a separate process, the code does not need to be thread safe.
Comment 7 Luke Kendall 2020-07-01 13:58:04 UTC
I can also add as a Unix programmer since long before threads became a thing, yes, it is extremely normal in the Linux world to create a new process.

As far as I know it, the two main reasons to create separate threads instead of separate processes are:
1) They're all working on the same problem and you want t o reduce context switching time, or
2) You want the threads to communicate a lot, and want to just share memory instead of using any of the many interprocess communication methods.

Of course, the biggest disadvantage of using threads instead of processes is that any kind of data structure corruption in one thread is likely to affect every thread.