bardsoftware / ganttproject

Official GanttProject repository.
http://ganttproject.biz
GNU General Public License v3.0
856 stars 301 forks source link

GanttProject on Mac OS X(Yosemite) is so slow #1098

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
1. Both GanttProject 2.6 and 2.7 on Mac OS X(Yosemite, Java8), especially 2.7 
is so slow that it' almost not usable. I turn to other tool because of 
this.(originally I used Linux and it has no problem on Linux)

2. The icon for dragging left and right for extending the length is not 
showing, sometimes it shows after a few minutes. So it looks like it 's cause 
by the slow(#1) problem.

Original issue reported on code.google.com by marklin...@gmail.com on 6 Mar 2015 at 5:31

GoogleCodeExporter commented 9 years ago
Did you use the same project on Mac OSX and Linux? And is there anything in the 
log or in the terminal window when you run it from Mac OSX?

Original comment by dbaras...@ganttproject.biz on 6 Mar 2015 at 12:04

GoogleCodeExporter commented 9 years ago
Hi,
I downloaded a different version(the Mac version) for Mac, not using the Linux 
version on Mac(although it's java-based). And I was opening the same .gan 
file(the project file).

Yes I have 2 log files.
And in the log file I can see some exceptions:

---------------------o<------------------------
Mar 09, 2015 7:46:17 PM org.apache.http.impl.client.DefaultRequestDirector 
tryConnect
INFO: I/O exception (java.net.NoRouteToHostException) caught when connecting to 
the target host: No route to host
Mar 09, 2015 7:46:17 PM org.apache.http.impl.client.DefaultRequestDirector 
tryConnect
INFO: Retrying connect
Mar 09, 2015 7:47:32 PM org.apache.http.impl.client.DefaultRequestDirector 
tryConnect
INFO: I/O exception (java.net.NoRouteToHostException) caught when connecting to 
the target host: No route to host
Mar 09, 2015 7:47:32 PM org.apache.http.impl.client.DefaultRequestDirector 
tryConnect
INFO: Retrying connect
Mar 09, 2015 7:48:48 PM org.apache.http.impl.client.DefaultRequestDirector 
tryConnect
INFO: I/O exception (java.net.NoRouteToHostException) caught when connecting to 
the target host: No route to host
Mar 09, 2015 7:48:48 PM org.apache.http.impl.client.DefaultRequestDirector 
tryConnect
INFO: Retrying connect
java.net.NoRouteToHostException: No route to host
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
    at net.sourceforge.ganttproject.client.RssFeedChecker$3.run(RssFeedChecker.java:165)
    at java.lang.Thread.run(Thread.java:745)

-------------------->o---------------------

--------------------o<---------------------
WARNING: Index: 0, Size: 0
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at net.sourceforge.ganttproject.gui.taskproperties.ResourcesTableModel.delete(ResourcesTableModel.java:219)
    at net.sourceforge.ganttproject.gui.taskproperties.TaskAllocationsPanel$1.onDeleteEvent(TaskAllocationsPanel.java:71)
    at net.sourceforge.ganttproject.gui.AbstractTableAndActionsComponent$2.actionPerformed(AbstractTableAndActionsComponent.java:80)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
    at java.awt.Component.processMouseEvent(Component.java:6525)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3322)
    at java.awt.Component.processEvent(Component.java:6290)
    at java.awt.Container.processEvent(Container.java:2234)
    at java.awt.Component.dispatchEventImpl(Component.java:4881)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    at java.awt.Container.dispatchEventImpl(Container.java:2278)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:702)
    at java.awt.EventQueue$3.run(EventQueue.java:696)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
    at java.awt.Dialog.show(Dialog.java:1084)
    at java.awt.Component.show(Component.java:1654)
    at java.awt.Component.setVisible(Component.java:1606)
    at java.awt.Window.setVisible(Window.java:1014)
    at java.awt.Dialog.setVisible(Dialog.java:1005)
    at net.sourceforge.ganttproject.DialogBuilder$DialogImpl.show(DialogBuilder.java:144)
    at net.sourceforge.ganttproject.gui.GanttDialogProperties.show(GanttDialogProperties.java:73)
    at net.sourceforge.ganttproject.action.task.TaskPropertiesAction.run(TaskPropertiesAction.java:66)
    at net.sourceforge.ganttproject.action.task.TaskActionBase$2.run(TaskActionBase.java:83)
    at net.sourceforge.ganttproject.undo.UndoableEditImpl.<init>(UndoableEditImpl.java:47)
    at net.sourceforge.ganttproject.undo.UndoManagerImpl.undoableEdit(UndoManagerImpl.java:74)
    at net.sourceforge.ganttproject.action.task.TaskActionBase.actionPerformed(TaskActionBase.java:79)
    at net.sourceforge.ganttproject.chart.gantt.MouseListenerImpl.mouseClicked(MouseListenerImpl.java:80)
    at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:269)
    at java.awt.Component.processMouseEvent(Component.java:6528)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3322)
    at java.awt.Component.processEvent(Component.java:6290)
    at java.awt.Container.processEvent(Container.java:2234)
    at java.awt.Component.dispatchEventImpl(Component.java:4881)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    at java.awt.Container.dispatchEventImpl(Container.java:2278)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:702)
    at java.awt.EventQueue$3.run(EventQueue.java:696)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

------------------------->o-------------------------

Original comment by marklin...@gmail.com on 9 Mar 2015 at 11:54

Attachments:

GoogleCodeExporter commented 9 years ago
Please be noticed those log are from GanttProject2.6, not 2.7, since 2.7 is 
even more slow than 2.6, I uninstalled 2.7 and installed 2.6. I can try to 
install 2.7 again and collect the log if it's needed for trouble-shooting.

My java environment:
kraken:~ maolin$ java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

Original comment by marklin...@gmail.com on 9 Mar 2015 at 11:56

GoogleCodeExporter commented 9 years ago
Can you share a project file?

Original comment by dbaras...@ganttproject.biz on 10 Mar 2015 at 5:44

GoogleCodeExporter commented 9 years ago
Yes. Please check the project file in the attachment.

Original comment by marklin...@gmail.com on 26 Mar 2015 at 1:59

Attachments:

GoogleCodeExporter commented 9 years ago
Any findings, please?

Original comment by marklin...@gmail.com on 28 Mar 2015 at 1:23

GoogleCodeExporter commented 9 years ago
And I found another issue on Mac is that some shortcut doesn't work on Mac.
e.g. on Win/Linux you can drag a task with Ctrl key-down, but this doesn't work 
on Mac.
It looks that this software on Mac really needs some adaptation work to be 
usable. I really like this software when I used Linux/Win, but unfortunately I 
have to swith to other tools due to such limitation on Mac. Can you please 
inform me once such issue are fixed, then I 'll be very happy to switch back...

Original comment by marklin...@gmail.com on 1 Apr 2015 at 1:30

GoogleCodeExporter commented 9 years ago
On Mac OSX holding Shift should work for task dragging. See issues #706

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 1:35

GoogleCodeExporter commented 9 years ago
I just found more exceptions in the log, please take a check.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 1:40

GoogleCodeExporter commented 9 years ago
I just found more exceptions in the log, please take a check.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 1:40

Attachments:

GoogleCodeExporter commented 9 years ago
This one is harmless. 

One wild guess is that you have a lot of fonts and they eat memory. If you're 
up for some debugging, you may try installing GP from ZIP archive [1], remove 
folder plugins/org.ganttproject.impex.htmlpdf/ from the installation directory 
and run GP. If it helps, then most likely fonts are the issue.

[1] https://code.google.com/p/ganttproject/wiki/InstallingFromZIPArchive

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 1:45

GoogleCodeExporter commented 9 years ago
OK I 'll take a try on that.
BTW, As you mentioned the font, FYI that I am using Macbook pro with retina 
display, it looks like it works smoothly until I try to zoom in and out with 
scrolling. Is it working OK on Macbook with retina display on your side?

Original comment by marklin...@gmail.com on 1 Apr 2015 at 1:54

GoogleCodeExporter commented 9 years ago
I don't have a retina display so I don't really know.

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 1:56

GoogleCodeExporter commented 9 years ago
And holding Shift doesn't work. Holding Ctrl works if it's not in the 'slow 
mode', if it's in the slow mode, it doesn't work, and the right-click button 
pops-up when you do that.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 1:56

GoogleCodeExporter commented 9 years ago
By the way, did you try changing other appearance? If you're using Mac OSX then 
maybe it will work better with Plastic (or vice versa) ?

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 2:01

GoogleCodeExporter commented 9 years ago
It's the same no matter which appearance I choosed:
- Mac OS X
- Plastic
- Motif
- Metal
- Nimbas

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:07

GoogleCodeExporter commented 9 years ago
FYI. When it 's in the slow mode, my cursor is not in the 'hand' style(it 
should be). And it's very laggy if you try to move the chart.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:10

GoogleCodeExporter commented 9 years ago
FYI. I removed the mac version and installed the ZIP version(2.7-1861), it 's 
still the same. But it seems the font look quite better.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:35

GoogleCodeExporter commented 9 years ago
FYI. I found another exception in the log, but maybe it's not harmful.

Apr 01, 2015 10:28:29 PM net.sourceforge.ganttproject.GPLogger logToLogger
WARNING: /Users/maolin/.ganttproject
java.nio.file.NoSuchFileException: /Users/maolin/.ganttproject
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
        at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
        at java.nio.file.Files.readAttributes(Files.java:1737)
        at net.sourceforge.ganttproject.document.DocumentCreator.startAutosaveCleanup(DocumentCreator.java:171)
        at net.sourceforge.ganttproject.GanttProject.main(GanttProject.java:851)
        at net.sourceforge.ganttproject.application.MainApplication.run(MainApplication.java:37)
        at org.bardsoftware.impl.eclipsito.ApplicationLauncher.launchApplication(ApplicationLauncher.java:29)
        at org.bardsoftware.impl.eclipsito.BootImpl$2.run(BootImpl.java:73)

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:37

GoogleCodeExporter commented 9 years ago
It is harmless, but how could you live without the options file, I wonder. Or 
did you delete it?

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 2:41

GoogleCodeExporter commented 9 years ago
What is the 'option file'? After the installation I removed folder 
'plugins/org.ganttproject.impex.htmlpdf/' as you instructed.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:47

GoogleCodeExporter commented 9 years ago
/Users/maolin/.ganttproject <= this one. GanttProject keeps the settings in 
this file.

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 2:48

GoogleCodeExporter commented 9 years ago
Before I started it, I removed .ganttproject.d, but I didn't found 
.ganttproject, this is also what I don't understand. Where is it store and 
retrieve my settings from? 

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:54

GoogleCodeExporter commented 9 years ago
Sorry, my bad. Indeed there is one .ganttproject under /home/maolin. I removed 
it before I started it.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:55

GoogleCodeExporter commented 9 years ago
So I guess such exception is only because it didn't find .ganttproject(because 
I removed it), then it created a new one. => No problem.

Now I feel the slow problem is related to the retina display and swing. Because 
it is very sharp now by default, sometimes when I change the resolution, 
problem might occur and the font turns bad-looking(fuzzy), but at that moment 
it's not as slow as such.

Original comment by marklin...@gmail.com on 1 Apr 2015 at 2:58

GoogleCodeExporter commented 9 years ago
? GP stores settings in $HOME/.ganttproject file. I don't think it really 
matters now. If you deleted it, GanttProject creates it again.

Frankly I don't know what's the issue. It might be retina, but we have users 
with retina screens who only complain about blurred icons. It might be a very 
long task (or outlier task which sits hundreds of years away from the rest -- 
it is possible to create such task by mistake), but such issues are 
reproducible on any OS, and it doesn't seem to be the case, provided that the 
project you shared is really the project you're having troubles with.

Is it reproducible with any project, even with the empty one?

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 3:00

GoogleCodeExporter commented 9 years ago
Also, what about other Java programs, e.g. FreeMind -- do they behave the same 
or not?

Original comment by dbaras...@ganttproject.biz on 1 Apr 2015 at 3:02

GoogleCodeExporter commented 9 years ago
Other java software works OK, I am sure it's not about my JRE.

I created a empty project, it works OK. I think it could be that my project is 
too big(having too much content). But with exactly the same project file, it 
works smoothly on Linux and Windows, but not on Mac(very slow).

Original comment by marklin...@gmail.com on 1 Apr 2015 at 3:15

GoogleCodeExporter commented 9 years ago
FYI. And I just found that with the empty project which was newly created, as 
long as I create more task(50+ tasks), the slow problem occurs. It 's as same 
as my original project that I attached

Original comment by marklin...@gmail.com on 1 Apr 2015 at 3:18

GoogleCodeExporter commented 9 years ago
Hi, 
Today I force the resolution on my mac to 1440x900 without HiDPI. I found it is 
much much faster than it is under HiDPI. But the problem of below is still 
existing.

1. Sometimes the cursor can not change according to the element it's above, it 
's always the arrow(the default system icon). e.g. the icon for dragging left 
and right for extending the length is not showing, this problem might disappear 
after a few minutes.

2. The hotkey Ctrl+dragging for moving the task brings the right-click menu on 
Mac. It looks like some hotkey conflict with the system hotkey on mac

Original comment by marklin...@gmail.com on 25 May 2015 at 2:21