New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance Regression over X11 #60
Comments
Is performance good when not viewing reads (other track types)? I have always found X11 performance unbearable with IGV, its good to know it worked for some people on some versions. I use and generally recommend a vnc server for running remotely. I will track down anti-aliasing and be sure its turned off, and post a comment here when an update is ready to test. |
Performance is pretty bad regardless of what you are doing unfortunately. I profiled both versions with hprof, see results at https://gist.github.com/jimhester/6038886. However found a user side fix at http://www.oracle.com/technetwork/java/javase/java2d-142140.html#gcgiv which does work, disabling the use of pixmaps by the X11 pipeline with -Dsun.java2d.pmoffscreen=false does fix the performance problems. So even if you don't try to fix the poor AA performance you might want to put a note about that option somewhere! Thanks for developing IGV, it is a very useful tool for our lab! |
I am having the same issue over X11. IGV works but within a minute or two of clicking around, it hangs over X11 and yields this error:
Is this an unrelated issue, or does it also have something to do with X11? The fix suggested for performance of adding |
I'll have to investigate. In the meantime, could you try turning
|
Yarden, Apologies, I get this error too. Something gone wrong in the build Jim
|
I fixed the problem with the zip file, you can download it again.
|
Thanks for looking into it so quickly Jim! The IGV_snapshot.zip still gives me this:
|
When I change
It's still quite slow on X11, probably a bit slower than the old release I was using. (btw is the Thanks, --Yarden |
Oh sorry, I fixed the release. Get that one, they are actually in sync
|
BTW, the workaround for this problem until it is fixed is to rename the
|
Hi all, Is there a definitive fix to the slowness over X11? I'm trying to update the Whitehead version of IGV so that it runs faster. Thanks! Best, Yarden |
Hi, No definite fix, we haven't been able to reproduce or diagnose the Jim
|
Hi Jim, That's definitely how most people run it, I believe, and at least me. I ssh into the tak server (Whitehead server) and then run it. All my BAM files are hosted there and I can't think of a more convenient solution. I've tried using Chicken and various VPN clients for Mac OS X to directly login to the Whitehead Linux servers, but those clients are very clunky and have all sort of irritating bugs (e.g. virtually impossible to copy and paste from the VPN client to the machine, etc.) Any thoughts on this? Thanks, Yarden |
I'm surprised the whitehead doesn't have a a means to mount linux drives We don't have resources to do X11 debugging right now, if you can Jim
|
I don't think this is at all a limitation on Whitehead end. The limitation I faced is that all the VPN clients for Mac OS X just don't work very well; they have bugs and don't seem to allow simple copy and pasting between the remote environments. For example, I tried JollyFastVNC. Maybe I am overlooking some better clients, so if you have suggestions, I'd love to know. Whitehead does allow you to remotely mount the Linux filesystem. Are you suggesting that the best approach is to install IGV locally (e.g. on my Mac OS X) and then simply load the BAMs via remote mounting of the Whitehead servers? Perhaps that's the best solution? Thanks, Yarden |
I can confirm the performance issue using recent versions of IGV over X11 (v2.3.31 and v2.3.34) which was not a problem as of v2.1.2. Using VNC with the recent IGV versions, the performance issue goes away. To give a sense of the magnitude of the performance hit, I have a batch script that loads a BAM containing WGS data, goes to a ~20kb region, sorts, collapses, and takes a snapshot. For IGV v2.3.x, the process took ~24 minutes over X11 (wall clock) but only ~30 seconds over VNC. Using IGV v2.1.2, the performance was not impacted when running over X11. Perusing the IGV git logs between v2.1.x and v2.2.x may provide some useful clues as to what change (feature addition or bug fix) caused this regression. |
Did you try disabling anti-aliasing in the advanced preferences tab. On Friday, August 1, 2014, Steve Chervitz Trutane notifications@github.com
|
The advanced preference tab has a "Enable antialiasing" checkbox that is unchecked by default. I verified it was unchecked before testing (IGV version 2.3.34). The slowest step appears to be the snapshot command. You can seen the image being redrawn on screen one row at a time - slow if you have a deep stack of reads and multiple tracks. Is there a way to run IGV without any graphics output (e.g. when you just want to generate snapshots)? |
IGV needs a display, there is a Java library that basically let you run
|
Just for reference - I think the java library Jim mentioned above is 'xvfb' (http://en.wikipedia.org/wiki/Xvfb), the way to use the library would be
|
Thanks for the xvfb tip. I tested it out and it does indeed work, even with anti-aliasing enabled. However, the generated snapshots are of MUCH lower quality than when the same script is processed directly via IGV (feeding it in via the GUI Tools menu). The snapshots are about 5x smaller in size and it looks like some commands weren't processed at all (e.g. maxPanelHeight). Perhaps this is a limitation of xvfb. Maybe Xdummy would be worth a try? http://xpra.org/trac/wiki/Xdummy |
Hi, sorry I don't have time to dig into this myself, but you might try
|
The .svg images generated by IGV running under xvfb are improved over the .png, but they're still not great. Images are less grainy and axis labels are much better in the SVG, but the overall image size is still small and the maxPanelHeight command is not handled (complete read stack is not visible in the image when it should be). |
Closing X11 issues, given the very limited resources available for IGV development (i.e. me) I just can't pursue this. I would welcome pull requests on the issue. Perhaps Java 1.8 will have made some improvements in this regard. |
There is a major performance regression in IGV that has existed since version 2.2 was released, which makes newer versions unbearably slow when using X11. I assume it is still the same issue as https://groups.google.com/forum/#!topic/igv-help/jR1Z8ITFcXM
I have tried to disable anti-aliasing to fix the problem as mentioned in that email chain, but the preference does not seem to be checked everywhere, in particular the read display themselves seem to still be antialiased. Performance is as you would expect very bad due to this problem.
2.1.24 performance is very snappy over X11, so I will continue to use that, but it would be nice to fix this performance regression so that those of us using IGV over the network can use the new features!
The text was updated successfully, but these errors were encountered: