Skip to content
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

Mac app: Editor slow on mac after os update to mavericks #1623

Closed
spyder-bot opened this issue Feb 17, 2015 · 38 comments
Closed

Mac app: Editor slow on mac after os update to mavericks #1623

spyder-bot opened this issue Feb 17, 2015 · 38 comments

Comments

@spyder-bot
Copy link
Collaborator

From [email protected] on 2013-10-28T11:27:56Z

Spyder Version: 2.2.5
Python Version: 2.7.5
Qt Version : 4.8.5, PyQt4 (API v2) 4.10.3 on Darwin
pyflakes >=0.5.0: 0.7.3 (OK)
pep8 >=0.6 : 1.4.6 (OK)
IPython >=0.13 : 1.1.0 (OK)
rope >=0.9.2 : 0.9.4 (OK)
sphinx >=0.6.6 : 1.1.3 (OK)
matplotlib >=1.0: 1.1.1 (OK)
sympy >=0.7.0 : None (NOK)
pylint >=0.25 : 1.0.0 (OK)

What steps will reproduce the problem?

  1. open spyder
    1. start editing What is the expected output? What do you see instead? Normal functioning editor.

Please provide any additional information below

. I have spyder installed from source on mac. After mac OS update to mavericks, my spyder editor becomes very slow. Terminal gives following output:

$ 2013-10-28 17:19:12.787 Python[3579:507] CoreText performance note: Client called CTFontCreateWithName() using name "Lucida Grande" and got font with PostScript name "LucidaGrande". For best performance, only use PostScript names when calling this API.
2013-10-28 17:19:12.787 Python[3579:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.
2013-10-28 17:19:35.083 Python[3579:507] modalSession has been exited prematurely - check for a reentrant call to endModalSession:

Might be related to qt4? See e.g. ariya/phantomjs#11418

Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1623

@spyder-bot spyder-bot added this to the v2.3 milestone Feb 17, 2015
@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-03T06:12:16Z

issue #1622 has been merged into this issue.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-03T06:21:43Z

This seems to be related to the "App Nap" feature of Mavericks. There are two options available:

  1. Those who installed from source can install a package called appnope with

pip install appnope

and then add

import appnope

as the first import in "spyderlib/start_app.py"

  1. Those who are using our self-contained app can follow the instructions in this page: http://www.tekrevue.com/tip/disable-app-nap-os-x-mavericks/ taking into account that our "app domain name" is org.spyder-ide

Please report back to know which solution works for you guys as I don't have access to a Mavericks to test.

Summary: Editor slow on mac after os update to mavericks (was: editor slow on mac after os update to mavericks)
Labels: MS-v2.3 Cat-SpyderGUI

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-03T06:23:32Z

Labels: OpSys-OSX

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-04T02:10:12Z

As I suspected the issue to be related to qt4, I tried to update these dependencies. Steps:

Issue seems to persist, example output:

2013-11-04 11:01:55.414 Python[23071:507] CoreText performance note: Client called CTFontCreateWithName() using name "Lucida Grande" and got font with PostScript name "LucidaGrande". For best performance, only use PostScript names when calling this API.
2013-11-04 11:01:55.414 Python[23071:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.

Seems to me this is still an issue with QT (fonts) dependencies, rather than the app nap feature?

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-04T07:42:15Z

It seems that's the case. I'll try to look for a solution on the web.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-04T07:55:10Z

Some interesting links:

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-07T07:04:18Z

Has anyone come up with a fix?

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-12T10:20:42Z

I am having the same problem. Fix in post #2 does not work for me.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-13T05:33:56Z

There is not much we can about it in our side. I'll see if I can address the font bug mentioned by Martjin, but as I said before, I don't have a Mavericks to test on.

Labels: -Priority-Medium Priority-High

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-13T13:01:17Z

iMac late 2013, same problem.

Neither solution in post #2 works. it seems like it might be the same as issue #523 , ie. a QT problem?

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-14T06:46:31Z

Some further things I've checked:

  1. building Qt from source:
    See http://qt-project.org/wiki/Get_The_Source Checking https://bugreports.qt-project.org/browse/QTBUG-32789 again, it seems they have already pushed a fix for the fonts issue.

However, the other issue of building from source has not been fixed yet ( https://bugreports.qt-project.org/browse/QTBUG-32237 ) and as the fix version has moved from the 4.8.6 earlier to none, I'm afraid this might still take some time ...

Both the ppl from macports and homebrew seemed to have picked this up and made a number of patches.

  1. macports build

Already tried this before: they also had the issue with building from source, see http://trac.macports.org/ticket/40852 .

After installing from macports (port install qt4-mac), I did a manual rebuild of pyqt (sources at http://www.riverbankcomputing.com/software/pyqt/download )

Unfortunately, this fix did not include a fix for the fonts issue.

  1. homebrew build
    See http://brew.sh/ Patches for building qt with homebrew: Qt4 on Mavericks (CLOSED) Homebrew/legacy-homebrew#23793 brew install qt4.

Building succeeded. Afterwards, I again built pyqt from source against the new qt install. Issue also persisted here.

Then, I tried to install pyqt from homebrew:

brew install pyqt

but this was even worse, due to some compiler issue between the qt built by homebrew and pyqt built by homebrew; seems not all issues are solved already for homebrew.

sidenote: I completely cleaned up my macports install prior to moving to homebrew. Atm I'm not really sure whether to stick to homebrew or use macports again (neither seem useful for fixing this issue).

To summarize:

  • QT has a fix for the fonts issue, but do not have a fix for building on Mavericks
  • macports and homebrew have a fix for building, but do not seem to have a fix for the fonts issue

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-14T12:33:17Z

Just to clarify, which issue (building or fonts) is responisble for the slow down of the editor? Build?

Am I correctly understanding that if I use a macports or homebrew build of qt4-mac, and then recompile pyqt, it will fix the slowdown?

Thanks!

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-15T00:54:53Z

To be clear: I do not have a working fix atm. The fixes I've mentioned:

  1. the build fix: by building I mean that the bare checked out source code from QT does not compile on my system and that the package managers (macports, homebrew) have included some patches to do just this
  2. the fonts fix: this does seem to be the actual issue. QT has already brought out a patch for this, but this does seem to be included in the patch set from the package managers

My next line of thought would be to include the specific font fix patch into the patches from e.g. homebrew. Looking e.g. at https://github.com/cliffrowley/homebrew/blob/bc8dc5eb71d579a3ca86b5f757140e22a9492daf/Library/Formula/qt.rb#L37 , it shouldn't be that hard to include this specific patch.

On a side note: I'm not a QT developer, nor involved with either macports and homebrew. I'm just a python developer that has come to rely (heavily) on spyder over the last months that would like to have this fixed :). It could be that said font fix doesn't really fix this issue, this just seems to me the most plausible issue from reading bug reports over at QT, macports and homebrew (see the links posted earlier).

On another, related side note: can anybody from spyder dev confirm that fixing my qt dependencies might solve this issue? I'm not really sure about the entire spyder / pyqt / qt dependencies link.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-18T01:05:08Z

Update: I've made a fix using homebrew. Similar to this patch ( Homebrew/legacy-homebrew#23793 ), I've included the font fix ( https://codereview.qt-project.org/#change,62261 ) into my own repo (diff: mhemeryck/homebrew@d82fdc9#diff-0 ).

Steps for using my patch:

  1. install homebrew: see http://brew.sh/ 2. install qt using the updated formula: brew install https://raw.github.com/mhemeryck/homebrew/d82fdc9ca88c9b46d19e2f25004e9c83e757ec34/Library/Formula/qt.rb --HEAD
  2. rebuild pyqt:
    3.1 download from http://www.riverbankcomputing.com/software/pyqt/download 3.2 tar xfvz PyQt-mac-gpl-4.10.3.tar.gz, python ./configure.py, make, [sudo] make install

I suppose I might ask the ppl from homebrew to include this specific patch in their list of patches so you can just get it from there. The best fix would be that qt would release a fix for all Mavericks related issues.

Anyway, it does seem that the editor slowdown was in fact related to this fonts issue.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-21T00:50:12Z

Update: I've asked the people from homebrew to include this fix ( Homebrew/legacy-homebrew#24479 ). Installing qt from homebrew should now be as simple as

brew install qt --HEAD

For the other steps: see my previous post.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-21T12:17:46Z

Thanks a lot Martijn for all your work on this one! It's really nice!

I have a question for you: have you experienced the delays mentioned is this IPython issue? ipython/ipython#4431

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-21T12:18:22Z

I mean, in our Python console or the IPython one?

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-22T00:02:58Z

No problem; I really needed this fix myself and most of the work was actually done by the people from homebrew.

Regarding the IPython issue: I've always used the interactive Python console and that one has always worked fine, both before and after the fix. Now that you mention the IPython console: I can't tell what the situation was before the fix, but looking at it now, I don't get any screen here (see attachment).

Attachment: ipython_console.png

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-26T10:56:08Z

Will martijin's fix work for the standalone .dmg?

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-26T19:53:07Z

I've gone through martijin's steps, but it has not fixed my standalone .dmg

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2013-11-27T06:05:24Z

@-martijn: There is no console because none is started by default. You have to go to the Interpreters menu and select "Open an IPython Console" to create one.

@-ukeben, AirikH: The standalone dmg comes with its own copy of Qt, and to fix it I'll have to wait until a new version of Qt is released (containing all bugfixes martijn mentioned). So for now the only solution is to use homebrew and start Spyder from a terminal with the command:

spyder

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-11-27T07:35:11Z

@-ccordoba12: I've tested the IPython console and I can't say I have any issues with it.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-12-03T12:27:07Z

@martijn and @-ccordoba12: Thank you both very much for your help! Everything is working excellently now.

For anyone still having trouble:
*Follow the steps in @-martijn's Post #14
*pip install spyder

NOTE: You may also need to "pip install" or "pip install --upgrade" the following:
ipython, numpy, matplotlib, pyflakes, rope, sphinx, pylint, and pep8, pyzmq

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-12-18T09:49:16Z

Maybe its just my machine, but after I installed the patch in post 14, Spyder was still laggy. However, when I put my computer to sleep and then wake it up, Spyder behaves normally. I have no idea why, but this seems to work for me.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-12-19T02:17:29Z

Update: last time I've checked, the pyqt formula at homebrew was also fixed for OSX Mavericks. So for a (clean) new install you can just do

brew install pyqt

and all dependencies (qt, sip, pyqt) will automatically be installed for you.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2013-12-31T19:44:59Z

Same symptom as #25. I did a clean install of pyqt and I guess a second install of qt (homebew patched instead of qt project). Slow at first. Normal after sleep/ wake.

Just for future reference, how do i tell whether Spyder is using pyqt or pyside bindings?

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-01-08T19:39:20Z

For what its worth, the folks over at Rstudio had a very similar problem with Qt and Mavericks ( http://blog.rstudio.org/2013/10/22/rstudio-and-os-x-10-9-mavericks/ ) . The only permanent and satisfactory fix they came up with was to port the whole program over to Cocoa, bypassing Qt. That seems like an awful lot of work. Otherwise, Qt has released 5.2, which claims to have fixed numerous issues with Mavericks. I don't know if its possible to release a Spyder update built with the newest version of Qt, which might also fix the problem? I tried installing the new Qt version myself, but couldn't get Spyder to use it.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-01-28T03:36:08Z

To follow up on this issue.

I have recently installed Spyder both standalone and through pip on OS X 10.9.1. The standalone uses Qt 4.8.5 and has the described lag in the editor. The one installed through pip uses Qt 4.8.6 (installed with brew install pyqt). Here there is no lag.

I have also had problems with lag when using matplotlib in interactive mode. When executing figure() or plot(rand(100)) it sometimes takes several seconds for the plot window and plotted graph to appear. Plotting is triggered when hitting cmd+space ???. Enabling Spyder's input hook for Qt (Preferences>Console>External modules) seems to fix this issue. Tried to turn off App Nap, as described above, but that didn't solve this issue.

When will a new dgm-file with Qt 4.8.6 be released?

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-02-06T08:51:19Z

Using brew and pip install spyder cleared this problem up for me too.

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2014-02-07T05:08:04Z

Unfortunately there hasn't been a new Qt release so for now the only possibility is to use Homebrew I guess.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-02-07T12:37:19Z

Just want to say that the solution in #29 worked for me. Thanks!

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-02-09T22:41:11Z

If the dependencies don't work then that is sort of the end of the product. Easy to say "out of our hands". On one machine, I installed qt via brew and got everything working. Though brew itself works reliably as a package installer/builder, it feels like a very non-standard environment. I like Spyder, but this Mavericks issue has killed it for me. Until we have a "standard" environment--a binary installer for qt on OS X and a compatible Spyder (pip or easy_install) then I'm done. You guys are more hardcore than me. Sometimes, it pays to pay for commercial software. Devs need paychecks to do their work, live, support their families. "Free as in beer" isn't always good for the software ecosystem. Situations like this reveal the shortcomings of "free as in beer." If someone gets a paycheck (only fair) then someone else has to pay for beer. Such is life.

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-02-09T22:54:08Z

By commercial software, I refer to Pycharm. It is certainly worth $100 for the functionality and lack of frustration. Not everyone's cup of tea, I realize, and Spyder is nice because it is the best of the pure Python IDEs for Python. But, it takes a team to develop rich, complex software. And team's have got to eat (man and woman do not live on beer alone...).

The other solution could be to move everything to QT5. Can't expect Riverbank or the QT Project to keep supporting old versions indefinitely, especially when "free as in beer." At least if QT5 and the companion pyqt or pyside actually work on Mavericks it is hard to blame those maintainers for not back porting every bug fix. I don't see anywhere on the Spyder 2.3 roadmap moving to later versions of QT/pyqt/pyside.

Once again, it's really hard to expect Carlos, who has done so much great work, to take all this on. It just shows that free as in beer is a hard way to earn one's daily bread (beer?). If we expect Spyder (and winpython, too--though we're talking os x here--I just wanted to recognize Carlos' other good work) to be viable, maybe it's time to pay? Who are we to expect such great tools to be free? Source can be available but perhaps it's time to pay for reliable binary installers so we can just do our work without investing in doing sys admin on other stuff.

Just a thought...

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-04-15T12:30:41Z

Has this issue been resolved? I was having this issue just as the rest of you described, but in the past few months I have had no problems, and I use Spyder almost every day. Was there a Mavericks update which solved this issue, or am I just fortunate?

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2014-04-15T13:54:39Z

This hasn't been solved although I've been unable to reproduce it with a couple of Mavericks (10.9.2) in Spanish.

Good news is Digia is about to release Qt 4.8.6, so we can use it when creating our 2.3 dmg.

I'm really sorry for all guys for whom Spyder stopped working but at least there's light at the end of the tunnel.

Status: Accepted

@spyder-bot
Copy link
Collaborator Author

From [email protected] on 2014-04-15T15:01:53Z

Woo hoo Qt update! This is actually one of the things that's kept me from upgrading to Mavericks, so I'm looking forward to it.

@spyder-bot
Copy link
Collaborator Author

From contrebasse on 2014-05-24T13:20:22Z

4.8.6 is out: http://blog.qt.digia.com/blog/2014/04/24/qt-4-8-6-released/ . Go go spyder 2.3 !

@-Lewis: Maybe the apparition of Spyder on Bitbucket will help to motivate new contributors ? I know it worked for me ! ;)

@spyder-bot
Copy link
Collaborator Author

From ccordoba12 on 2014-07-02T11:54:52Z

This is going to be fixed once we do the 2.3 release (hopefully before the end of the week).

Thanks to all for your patience :)

Summary: Mac app: Editor slow on mac after os update to mavericks (was: Editor slow on mac after os update to mavericks)
Status: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant