[OS X] Performance / CPU spikes

I've run into an issue that makes working with PHPStorm 2.0 quite unpleasent.

On this machine ( OS X 10.6.6, 2,4 Ghz Dualcore with 5GB RAM ) the editor window, especially when scrolling the document, causes the process WindowServer to eat huge amounts of CPU.

I am not sure if this is an issue with my system or PHPStorm.
Can someone confirm this behavior?



----------
just in case it could be related, here's the log entries:

15.02.11 19:37:07     /Applications/PhpStorm 2.0.app/Contents/MacOS/idea[7718]     Unrecognized Java VM option ignored:
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]     ERROR: gnu/trove/THashSet
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]     java.lang.NoClassDefFoundError: gnu/trove/THashSet
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.ClassLoader.defineClass1(Native Method)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.security.AccessController.doPrivileged(Native Method)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at com.intellij.openapi.util.objectTree.ObjectTree.<init>(ObjectTree.java:40)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at com.intellij.openapi.util.Disposer.<clinit>(Disposer.java:33)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at com.intellij.util.Timed.disposeTimed(Timed.java:96)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at com.intellij.util.Timed$1.run(Timed.java:81)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.Thread.run(Thread.java:680)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]     Caused by: java.lang.ClassNotFoundException: gnu.trove.THashSet
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.security.AccessController.doPrivileged(Native Method)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
15.02.11 19:39:07     [0x0-0x187187].com.jetbrains.webide[7718]          ... 25 more

4 comments

I wonder how it works at all with such an exception...
Really looks like corrupted installation to me.

Did you touched Info.plist inside .app package?

1) submit current Info.plist contents here for analysis

2) try to re-download

0

thank you for the timely response to this matter.

below are the contents of the info.plist (I havent modified any contents of the .app package) and another bunch of log entries.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleDocumentTypes</key>
    <array>
    </array>
    <key>CFBundleExecutable</key>
    <string>idea</string>
    <key>CFBundleIconFile</key>
    <string>webide.icns</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>PhpStorm</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleIdentifier</key>
    <string>com.jetbrains.webide</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleGetInfoString</key>
    <string>PhpStorm 2.0, build PS-103.99. Copyright JetBrains s.r.o., (c) 2000-@@year@@</string>
    <key>CFBundleShortVersionString</key>
    <string>2.0</string>
    <key>CFBundleVersion</key>
    <string>PS-103.99</string>

    <key>LSArchitecturePriority</key>
    <array>
      <string>x86_64</string>
      <string>i386</string>
    </array>
    <key>LSRequiresNativeExecution</key>
    <string>YES</string>

    <key>Java</key>
    <dict>
      <key>ClassPath</key>
      <string>$APP_PACKAGE/lib/bootstrap.jar:$APP_PACKAGE/lib/extensions.jar:$APP_PACKAGE/lib/util.jar:$APP_PACKAGE/lib/jdom.jar:$APP_PACKAGE/lib/log4j.jar</string>

      <key>JVMVersion</key>
      <string>1.6+</string>

      <key>MainClass</key>
      <string>com.intellij.idea.Main</string>
      <key>Properties</key>
      <dict>
        <key>CVS_PASSFILE</key>
        <string>~/.cvspass</string>
        <key>com.apple.mrj.application.live-resize</key>
        <string>false</string>
        <key>idea.config.path</key>
        <string>~/Library/Preferences/WebIDE10/</string>
        <key>idea.system.path</key>
        <string>~/Library/Caches/WebIDE10/</string>
        <key>idea.plugins.path</key>
        <string>~/Library/Application Support/WebIDE10/</string>
        <key>idea.log.path</key>
        <string>~/Library/Logs/WebIDE10/</string>
        <key>java.endorsed.dirs</key>
        <string></string>
        <key>idea.smooth.progress</key>
        <string>false</string>
        <key>apple.laf.useScreenMenuBar</key>
        <string>true</string>
        <key>apple.awt.graphics.UseQuartz</key>
        <string>true</string>
        <!--<key>idea.use.native.mac.filechooser</key>-->
        <!--<string>false</string>-->
        <key>apple.awt.fullscreencapturealldisplays</key>
        <string>false</string>
        <key>idea.platform.prefix</key>
        <string>PhpStorm</string>
      </dict>

      <key>VMOptions</key>
      <string>-Xms16m -Xmx500m -XX:MaxPermSize=150m -ea  -Dnative.mac.file.chooser.enabled=false -Xverify:none -XX:+UseCompressedOOPS -XX:+DoEscapeAnalysis -Xbootclasspath/a:../lib/boot.jar</string>

      <key>WorkingDirectory</key>
      <string>$APP_PACKAGE/bin</string>
    </dict>
  </dict>
</plist>



konsole log:
(the last 2 messages might be more closely related to the performance drop / WindowServer mayhem, the previous seem to occur on every launch)

17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]     ERROR: gnu/trove/THashSet
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]     java.lang.NoClassDefFoundError: gnu/trove/THashSet
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.ClassLoader.defineClass1(Native Method)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.security.AccessController.doPrivileged(Native Method)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at com.intellij.openapi.util.objectTree.ObjectTree.<init>(ObjectTree.java:40)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at com.intellij.openapi.util.Disposer.<clinit>(Disposer.java:33)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at com.intellij.util.Timed.disposeTimed(Timed.java:96)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at com.intellij.util.Timed$1.run(Timed.java:81)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.Thread.run(Thread.java:680)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]     Caused by: java.lang.ClassNotFoundException: gnu.trove.THashSet
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.security.AccessController.doPrivileged(Native Method)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
17.02.11 11:15:49     [0x0-0x22022].com.jetbrains.webide[519]          ... 25 more
17.02.11 11:21:28     [0x0-0x22022].com.jetbrains.webide[519]     setWindowMask(): To avoid content dragging, setWindowMask() must be called before the window is realized, or apple.awt.draggableWindowBackground must be set to Boolean.FALSE before the window is realized.  If you really want content dragging, set apple.awt.draggableWindowBackground on the window's root pane to Boolean.TRUE before calling setWindowMask() to hide this message.
17.02.11 11:23:06     [0x0-0x22022].com.jetbrains.webide[519]     setWindowMask(): To avoid content dragging, setWindowMask() must be called before the window is realized, or apple.awt.draggableWindowBackground must be set to Boolean.FALSE before the window is realized.  If you really want content dragging, set apple.awt.draggableWindowBackground on the window's root pane to Boolean.TRUE before calling setWindowMask() to hide this message.



I'll try a fresh download of the .app now - see if it helps.

edit: problem persists after replacing the .app and a pram reset.

0

I too am seeing the THashSet exception in IDEA 10.0.2.  This is on a new MacBookPro running Snow Leopard 10.6.6 using the latest Apple Java, build 1.6.0_22-b04-307-10M3261 (64-bit Server VM).

I also did a fresh install of 10.0.2, removing all traces of IDEA from ~/Library.  I still see the exception on startup.

0

Well, the we have the autoritive answer that this particular exception is not related with your performance problems.

Please file a separate performance problem issues to project issue tracker.
Please follow http://devnet.jetbrains.net/docs/DOC-192 on how to gather required information.
Project stats and description of your actions at the moment of "spikes" also may be helpful.

0

Please sign in to leave a comment.