Discussion:
Performance & crash issues on 3.5 : Qt vs Cocoa on OSX
(too old to reply)
christophe lengelé
2012-02-22 09:34:20 UTC
Permalink
Hello,

By testing a "small" program with a big GUI including lots of tabbed views, I wrote last year, I discovered relatively huge performance issues 
between 3.4.5 and the last 3.5rc2 and especially between Qt and Cocoa :

Brief summary :

Real Memory used by the application for the GUI part within the Activity Monitor in Mac OSX :
- 300 Mb with cocoa 3.4.5
- 1.2 Gb with Qt 3.5 rc2

Time needed to load the GUI part :

- roughly 1 minute with cocoa 3.4.5
- roughly 10 minutes with Qt 3.5 rc2 (which is unworkable)

Visual update used by a routine :
- 25 % with cocoa 3.4.5
- 80 % with Qt 3.5 rc2

I know that cocoa part will disappear in the future and I really appreciate all the efforts done by the whole community of developpers
for getting a beautiful and cross-platform GUI.
But I'm a little bit "worried" by the GUI Qt performance with the last version of SC on OSX,
that may due to the fact that the language in now in 64 bit ?

Is there a chance that Qt will be as performant as cocoa in the future in terms of CPU ?
Otherwise, why to make disappear cocoa ?
And maybe there is a better (programming) way than using tabbed views (quark) to get a better performance ?
Any suggestions appreciated...


Except for the performance issues, triggering the GUI part with the last version of SC seems OK with Qt.

But, I've got a crash with cocoa (crash report below)
I cannot send the program since it's really huge and I need to simplify it.
But I can send it directly to one of the GUI SC guru within 1 or 2 days...
Or you've got already an idea of what's wrong with this crash report ?

Many Thanks,
Christophe



Process:         SuperCollider [1378]
Path:            /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/MacOS/SuperCollider
Identifier:      net.sourceforge.supercollider
Version:         3.5 (-rc2)
Code Type:       X86-64 (Native)
Parent Process:  launchd [100]

Date/Time:       2012-02-22 08:45:50.748 +0100
OS Version:      Mac OS X 10.6.8 (10K549)
Report Version:  6

Interval Since Last Report:          412813 sec
Crashes Since Last Report:           5
Per-App Interval Since Last Report:  36602 sec
Per-App Crashes Since Last Report:   5
Anonymous UUID:                      C44E319B-DD0F-44C6-8C39-0644C751D274

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000000000f8
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   net.sourceforge.supercollider 0x000000010005dbc0 Interpret(VMGlobals*) + 40192
1   net.sourceforge.supercollider 0x00000001000638b2 runInterpreter + 34
2   net.sourceforge.supercollider 0x000000010006419c runLibrary + 76
3   net.sourceforge.supercollider 0x00000001000d9c79 -[MyDocument sendSelection:] + 201
4   net.sourceforge.supercollider 0x00000001000fc816 -[SCTextView keyDown:] + 886
5   com.apple.AppKit              0x00007fff823af0c7 -[NSWindow sendEvent:] + 8769
6   com.apple.AppKit              0x00007fff822e3afa -[NSApplication sendEvent:] + 4719
7   com.apple.AppKit              0x00007fff8227a6de -[NSApplication run] + 474
8   QtGui                         0x0000000102750174 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1588
9   QtCore                        0x0000000103665a34 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
10  QtCore                        0x0000000103665d54 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 180
11  QtCore                        0x000000010366737c QCoreApplication::exec() + 188
12  net.sourceforge.supercollider 0x0000000100008664 start + 52

Thread 1:  Dispatch queue: com.apple.libdispatch-manager
0   libSystem.B.dylib             0x00007fff83f6ec0a kevent + 10
1   libSystem.B.dylib             0x00007fff83f70add _dispatch_mgr_invoke + 154
2   libSystem.B.dylib             0x00007fff83f707b4 _dispatch_queue_invoke + 185
3   libSystem.B.dylib             0x00007fff83f702de _dispatch_worker_thread2 + 252
4   libSystem.B.dylib             0x00007fff83f6fc08 _pthread_wqthread + 353
5   libSystem.B.dylib             0x00007fff83f6faa5 start_wqthread + 13

Thread 2:
0   libSystem.B.dylib             0x00007fff83f55dc2 semaphore_wait_signal_trap + 10
1   libSystem.B.dylib             0x00007fff83f5b40d pthread_mutex_lock + 469
2   net.sourceforge.supercollider 0x000000010001f810 ProcessOSCPacket(OSC_Packet*, int) + 48
3   net.sourceforge.supercollider 0x000000010001bd3f SC_UdpInPort::Run() + 137
4   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
5   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 3:
0   libSystem.B.dylib             0x00007fff83f90a6a __semwait_signal + 10
1   libSystem.B.dylib             0x00007fff83f908f9 nanosleep + 148
2   libSystem.B.dylib             0x00007fff83fdd9ac sleep + 61
3   net.sourceforge.supercollider 0x000000010000cb1a resyncThread(void*) + 26
4   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
5   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 4:
0   libSystem.B.dylib             0x00007fff83f55dc2 semaphore_wait_signal_trap + 10
1   libSystem.B.dylib             0x00007fff83f5b40d pthread_mutex_lock + 469
2   libSystem.B.dylib             0x00007fff83f94901 _pthread_cond_wait + 1414
3   net.sourceforge.supercollider 0x000000010000cc5b TempoClock::Run() + 67
4   net.sourceforge.supercollider 0x000000010000c539 TempoClock_run_func(void*) + 9
5   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
6   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 5:
0   libSystem.B.dylib             0x00007fff83f90a6a __semwait_signal + 10
1   libSystem.B.dylib             0x00007fff83f94881 _pthread_cond_wait + 1286
2   net.sourceforge.supercollider 0x000000010000cc5b TempoClock::Run() + 67
3   net.sourceforge.supercollider 0x000000010000c539 TempoClock_run_func(void*) + 9
4   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
5   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 6:
0   libSystem.B.dylib             0x00007fff83f90a6a __semwait_signal + 10
1   libSystem.B.dylib             0x00007fff83f94881 _pthread_cond_wait + 1286
2   net.sourceforge.supercollider 0x000000010000cc5b TempoClock::Run() + 67
3   net.sourceforge.supercollider 0x000000010000c539 TempoClock_run_func(void*) + 9
4   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
5   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 7:
0   libSystem.B.dylib             0x00007fff83f55dc2 semaphore_wait_signal_trap + 10
1   libSystem.B.dylib             0x00007fff83f5b40d pthread_mutex_lock + 469
2   libSystem.B.dylib             0x00007fff83f94901 _pthread_cond_wait + 1414
3   net.sourceforge.supercollider 0x000000010000c6bb schedRunFunc(void*) + 123
4   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
5   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 8:  com.apple.CFSocket.private
0   libSystem.B.dylib             0x00007fff83f99932 select$DARWIN_EXTSN + 10
1   com.apple.CoreFoundation      0x00007fff844ff468 __CFSocketManager + 824
2   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
3   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 9:
0   libSystem.B.dylib             0x00007fff83f57982 read$NOCANCEL + 10
1   libSystem.B.dylib             0x00007fff83fa70ef __sread + 16
2   libSystem.B.dylib             0x00007fff83f9ee34 _sread + 19
3   libSystem.B.dylib             0x00007fff83f9ecca __srefill + 41
4   libSystem.B.dylib             0x00007fff83fb500e fgets + 105
5   net.sourceforge.supercollider 0x000000010004df50 string_popen_thread_func(void*) + 64
6   libSystem.B.dylib             0x00007fff83f8efd6 _pthread_start + 331
7   libSystem.B.dylib             0x00007fff83f8ee89 thread_start + 13

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x0000000100344e60  rbx: 0x00000001003423e0  rcx: 0x0000000000000003  rdx: 0x000000010006334c
  rdi: 0x0000000100345720  rsi: 0x00000001190dbea8  rbp: 0x00000001003423e0  rsp: 0x00007fff5fbff250
   r8: 0x00000001000776d4   r9: 0x000000000000001e  r10: 0x0000000129dfedb8  r11: 0x00000001278e1090
  r12: 0x000000011e7e5700  r13: 0x000000011e7e5728  r14: 0x000000011a068478  r15: 0x0000000000000000
  rip: 0x000000010005dbc0  rfl: 0x0000000000010202  cr2: 0x00000000000000f8

Binary Images:
       0x100000000 -        0x100300fe7 +net.sourceforge.supercollider 3.5 (-rc2) <5B7ECF07-90A5-35B8-BCE1-B94B8788AA73> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/MacOS/SuperCollider
       0x10057e000 -        0x10061efff +libscsynth.1.0.0.dylib ??? (???) <6419B4B5-A874-3916-AAEB-8BF50B34C2D4> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/MacOS/libscsynth.1.0.0.dylib
       0x10069b000 -        0x101950fe7 +QtWebKit 4.7.4 (compatibility 4.7.0) <A5C7F2E8-A47C-4532-3AC0-E1FBB9ACA6C8> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/QtWebKit.framework/Versions/4/QtWebKit
       0x1020eb000 -        0x10258eff7 +QtXmlPatterns 4.7.4 (compatibility 4.7.0) <044669A0-E735-3D8D-F7CC-65D938C2A152> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/QtXmlPatterns.framework/Versions/4/QtXmlPatterns
       0x102711000 -        0x1030f6fef +QtGui 4.7.4 (compatibility 4.7.0) <8B10C74D-0789-C563-FA0E-3192DAE669E6> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui
       0x1033a3000 -        0x1034cdfef +QtNetwork 4.7.4 (compatibility 4.7.0) <CF022D16-5123-BA0B-BB22-8CE1CCF23B54> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork
       0x103526000 -        0x1037aeff7 +QtCore 4.7.4 (compatibility 4.7.0) <9EB52EC3-3C0F-0A45-1CE6-227EB7069767> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore
       0x103842000 -        0x103892ff7  com.apple.audio.midi.CoreMIDI 1.7.1 (42) <E7DBCE93-A637-ABA2-B623-6A76B82EE243> /System/Library/Frameworks/CoreMIDI.framework/Versions/A/CoreMIDI
       0x1038ba000 -        0x103902fef +phonon 4.4.0 (compatibility 4.4.0) <9D09E9B4-9EC7-382F-4BBF-2DE63FC8CB27> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/phonon.framework/Versions/4/phonon
       0x103929000 -        0x1039a8ff7 +QtDBus 4.7.4 (compatibility 4.7.0) <EE1FD870-131F-4230-BA28-2DC6312B7B05> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/QtDBus.framework/Versions/4/QtDBus
       0x1039cc000 -        0x103a09fff +QtXml 4.7.4 (compatibility 4.7.0) <9956E9E8-119F-CB7F-7405-150845BD2C7D> /Applications/SuperCollider35rc2/SuperCollider35rc2.app/Contents/Frameworks/QtXml.framework/Versions/4/QtXml
    0x7fff5fc00000 -     0x7fff5fc3bdef  dyld 132.1 (???) <B536F2F1-9DF1-3B6C-1C2C-9075EA219A06> /usr/lib/dyld
    0x7fff80003000 -     0x7fff8006bfff  com.apple.MeshKitRuntime 1.1 (49.2) <C57FDCEE-CED0-06A8-2890-A3F6BB851998> /System/Library/PrivateFrameworks/MeshKit.framework/Versions/A/Frameworks/MeshKitRuntime.framework/Versions/A/MeshKitRuntime
    0x7fff8006c000 -     0x7fff800f1ff7  com.apple.print.framework.PrintCore 6.3 (312.7) <CDFE82DD-D811-A091-179F-6E76069B432D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore
    0x7fff8013d000 -     0x7fff8013ffff  libRadiance.dylib ??? (???) <E08CD209-E3E4-2753-AF8A-90DD12ED556F> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib
    0x7fff801a9000 -     0x7fff8028efef  com.apple.DesktopServices 1.5.11 (1.5.11) <39FAA3D2-6863-B5AB-AED9-92D878EA2438> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/DesktopServicesPriv
    0x7fff8028f000 -     0x7fff803c4fff  com.apple.audio.toolbox.AudioToolbox 1.6.7 (1.6.7) <F4814A13-E557-59AF-30FF-E62929367933> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
    0x7fff803cc000 -     0x7fff803f4fff  com.apple.DictionaryServices 1.1.2 (1.1.2) <E9269069-93FA-2B71-F9BA-FDDD23C4A65E> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
    0x7fff803f5000 -     0x7fff803fafff  libGFXShared.dylib ??? (???) <6BBC351E-40B3-F4EB-2F35-05BDE52AF87E> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib
    0x7fff803fb000 -     0x7fff80450ff7  com.apple.framework.familycontrols 2.0.2 (2020) <F09541B6-5E28-1C01-C1AE-F6A2508670C7> /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/FamilyControls
    0x7fff80451000 -     0x7fff80492fef  com.apple.QD 3.36 (???) <5DC41E81-32C9-65B2-5528-B33E934D5BB4> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD
    0x7fff80493000 -     0x7fff804acfff  com.apple.CFOpenDirectory 10.6 (10.6) <CCF79716-7CC6-2520-C6EB-A4F56AD0A207> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
    0x7fff804ad000 -     0x7fff80564fff  com.apple.Bluetooth 2.4.5 (2.4.5f3) <169F4284-DC35-D236-9086-9760113C01D3> /System/Library/Frameworks/IOBluetooth.framework/Versions/A/IOBluetooth
    0x7fff805a0000 -     0x7fff8061eff7  com.apple.CoreText 151.12 (???) <5BE797B7-C903-B664-ADD9-7514B1A6EF9E> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework/Versions/A/CoreText
    0x7fff8061f000 -     0x7fff806b9fff  com.apple.ApplicationServices.ATS 275.19 (???) <2DE8987F-4563-4D8E-45C3-2F6F786E120D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS
    0x7fff806f7000 -     0x7fff8074aff7  com.apple.HIServices 1.8.3 (???) <F6E0C7A7-C11D-0096-4DDA-2C77793AA6CD> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices
    0x7fff8074b000 -     0x7fff8076efff  com.apple.opencl 12.3.6 (12.3.6) <42FA5783-EB80-1168-4015-B8C68F55842F> /System/Library/Frameworks/OpenCL.framework/Versions/A/OpenCL
    0x7fff8076f000 -     0x7fff80776fff  com.apple.OpenDirectory 10.6 (10.6) <4200CFB0-DBA1-62B8-7C7C-91446D89551F> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
    0x7fff8077f000 -     0x7fff807cbfff  libauto.dylib ??? (???) <F7221B46-DC4F-3153-CE61-7F52C8C293CF> /usr/lib/libauto.dylib
    0x7fff807f8000 -     0x7fff807f9ff7  com.apple.audio.units.AudioUnit 1.6.7 (1.6.7) <49B723D1-85F8-F86C-2331-F586C56D68AF> /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
    0x7fff807fa000 -     0x7fff80815ff7  com.apple.openscripting 1.3.1 (???) <5A6ECC32-04D0-9A62-635D-1DD03EC6E190> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting
    0x7fff80816000 -     0x7fff80841ff7  libxslt.1.dylib 3.24.0 (compatibility 3.0.0) <8AB4CA9E-435A-33DA-7041-904BA7FA11D5> /usr/lib/libxslt.1.dylib
    0x7fff80844000 -     0x7fff80844ff7  com.apple.CoreServices 44 (44) <DC7400FB-851E-7B8A-5BF6-6F50094302FB> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
    0x7fff80845000 -     0x7fff8093dff7  libiconv.2.dylib 7.0.0 (compatibility 7.0.0) <E0683DF0-8180-58A2-BA49-511111D4F36E> /usr/lib/libiconv.2.dylib
    0x7fff8093e000 -     0x7fff809cefff  com.apple.SearchKit 1.3.0 (1.3.0) <3403E658-A54E-A79A-12EB-E090E8743984> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
    0x7fff809cf000 -     0x7fff809e0fff  com.apple.DSObjCWrappers.Framework 10.6 (134) <3C08225D-517E-2822-6152-F6EB13A4ADF9> /System/Library/PrivateFrameworks/DSObjCWrappers.framework/Versions/A/DSObjCWrappers
    0x7fff80a65000 -     0x7fff80acffe7  libvMisc.dylib 268.0.1 (compatibility 1.0.0) <7D8B6D68-7E70-2AF2-BF9F-2CD56145909C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
    0x7fff80ad0000 -     0x7fff80d39fff  com.apple.QuartzComposer 4.2 ({156.30}) <C05B97F7-F543-C329-873D-097177226D79> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzComposer.framework/Versions/A/QuartzComposer
    0x7fff80d3a000 -     0x7fff80df0ff7  libobjc.A.dylib 227.0.0 (compatibility 1.0.0) <03140531-3B2D-1EBA-DA7F-E12CC8F63969> /usr/lib/libobjc.A.dylib
    0x7fff80df8000 -     0x7fff80ebafe7  libFontParser.dylib ??? (???) <EF06F16C-0CC9-B4CA-7BD9-0A97FA967340> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib
    0x7fff80ebb000 -     0x7fff80ebdfff  com.apple.print.framework.Print 6.1 (237.1) <CA8564FB-B366-7413-B12E-9892DA3C6157> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print
    0x7fff80ebe000 -     0x7fff80f2afe7  com.apple.CorePDF 1.4 (1.4) <06AE6D85-64C7-F9CC-D001-BD8BAE31B6D2> /System/Library/PrivateFrameworks/CorePDF.framework/Versions/A/CorePDF
    0x7fff80f2b000 -     0x7fff80f41fef  libbsm.0.dylib ??? (???) <83676D2E-23CD-45CD-BE5C-35FCFFBBBDBB> /usr/lib/libbsm.0.dylib
    0x7fff8102b000 -     0x7fff811e9fff  libicucore.A.dylib 40.0.0 (compatibility 1.0.0) <4274FC73-A257-3A56-4293-5968F3428854> /usr/lib/libicucore.A.dylib
    0x7fff8120f000 -     0x7fff812d0fef  com.apple.ColorSync 4.6.8 (4.6.8) <7DF1D175-6451-51A2-DBBF-40FCA78C0D2C> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync
    0x7fff812d1000 -     0x7fff813e8fef  libxml2.2.dylib 10.3.0 (compatibility 10.0.0) <1B27AFDD-DF87-2009-170E-C129E1572E8B> /usr/lib/libxml2.2.dylib
    0x7fff813e9000 -     0x7fff813edff7  libCGXType.A.dylib 545.0.0 (compatibility 64.0.0) <DB710299-B4D9-3714-66F7-5D2964DE585B> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCGXType.A.dylib
    0x7fff813ee000 -     0x7fff81421ff7  libTrueTypeScaler.dylib ??? (???) <B7BA8104-FA18-39A2-56E1-922EE7A660AC> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libTrueTypeScaler.dylib
    0x7fff81422000 -     0x7fff814d2fff  edu.mit.Kerberos 6.5.11 (6.5.11) <085D80F5-C9DC-E252-C21B-03295E660C91> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
    0x7fff814d3000 -     0x7fff81691ff7  com.apple.ImageIO.framework 3.0.5 (3.0.5) <4CF96F2C-B7BB-4C57-E352-3C678CA2B2B1> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
    0x7fff816c2000 -     0x7fff81dbeff7  com.apple.CoreGraphics 1.545.0 (???) <58D597B1-EB3B-710E-0B8C-EC114D54E11B> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
    0x7fff81dcf000 -     0x7fff81dcfff7  com.apple.Carbon 150 (152) <19B37B7B-1594-AD0A-7F14-FA2F85AD7241> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
    0x7fff81fe6000 -     0x7fff82027fef  com.apple.CoreMedia 0.484.60 (484.60) <6B73A514-C4D5-8DC7-982C-4E4F0231ED77> /System/Library/PrivateFrameworks/CoreMedia.framework/Versions/A/CoreMedia
    0x7fff82028000 -     0x7fff82262fef  com.apple.imageKit 2.0.3 (1.0) <9EA216AF-82D6-201C-78E5-D027D85B51D6> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/ImageKit
    0x7fff82263000 -     0x7fff82270fe7  libCSync.A.dylib 545.0.0 (compatibility 64.0.0) <1C35FA50-9C70-48DC-9E8D-2054F7A266B1> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
    0x7fff82271000 -     0x7fff82c6bff7  com.apple.AppKit 6.6.8 (1038.36) <4CFBE04C-8FB3-B0EA-8DDB-7E7D10E9D251> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    0x7fff82c6c000 -     0x7fff82cb5fef  libGLU.dylib ??? (???) <B0F4CA55-445F-E901-0FCF-47B3B4BAE6E2> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
    0x7fff82cb6000 -     0x7fff83053fe7  com.apple.QuartzCore 1.6.3 (227.37) <16DFF6CD-EA58-CE62-A1D7-5F6CE3D066DD> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
    0x7fff83084000 -     0x7fff83089ff7  com.apple.CommonPanels 1.2.4 (91) <4D84803B-BD06-D80E-15AE-EFBE43F93605> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels
    0x7fff8313b000 -     0x7fff83160ff7  com.apple.CoreVideo 1.6.2 (45.6) <E138C8E7-3CB6-55A9-0A2C-B73FE63EA288> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
    0x7fff83161000 -     0x7fff83166fff  libGIF.dylib ??? (???) <1888A176-22D5-C663-22D0-336D9D213BD6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib
    0x7fff83167000 -     0x7fff831afff7  libvDSP.dylib 268.0.1 (compatibility 1.0.0) <170DE04F-89AB-E295-0880-D69CAFBD7979> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
    0x7fff831fb000 -     0x7fff831fbff7  com.apple.quartzframework 1.5 (1.5) <B182B579-BCCE-81BF-8DA2-9E0B7BDF8516> /System/Library/Frameworks/Quartz.framework/Versions/A/Quartz
    0x7fff831fc000 -     0x7fff83243ff7  com.apple.coreui 2 (114) <BB09E685-1F5D-0676-1A0E-295610B387A8> /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
    0x7fff83244000 -     0x7fff83266ff7  libexpat.1.dylib 7.2.0 (compatibility 7.0.0) <8EC31253-B585-D05E-F35D-AE3292FB790B> /usr/lib/libexpat.1.dylib
    0x7fff83267000 -     0x7fff832f6fff  com.apple.PDFKit 2.5.1 (2.5.1) <927B9F90-3EBE-768E-8B18-BE43B4B58190> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/PDFKit.framework/Versions/A/PDFKit
    0x7fff832f7000 -     0x7fff833cbfe7  com.apple.CFNetwork 454.12.4 (454.12.4) <C83E2BA1-1818-B3E8-5334-860AD21D1C80> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
    0x7fff833ea000 -     0x7fff83587fef  com.apple.WebKit 6534.52 (6534.52.7) <CE3B2C17-67CD-E5DA-1580-B08B10A8FFBB> /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
    0x7fff83588000 -     0x7fff83641fff  libsqlite3.dylib 9.6.0 (compatibility 9.0.0) <2C5ED312-E646-9ADE-73A9-6199A2A43150> /usr/lib/libsqlite3.dylib
    0x7fff83642000 -     0x7fff83685ff7  libRIP.A.dylib 545.0.0 (compatibility 64.0.0) <5FF3D7FD-84D8-C5FA-D640-90BB82EC651D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
    0x7fff83eb8000 -     0x7fff83ebbff7  com.apple.securityhi 4.0 (36638) <38935851-09E4-DDAB-DB1D-30ADC39F7ED0> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI
    0x7fff83ecb000 -     0x7fff83f04ff7  com.apple.MeshKit 1.1 (49.2) <2860E92F-5B68-E8DD-0E8F-BF3DD6ACF330> /System/Library/PrivateFrameworks/MeshKit.framework/Versions/A/MeshKit
    0x7fff83f05000 -     0x7fff83f54fef  libTIFF.dylib ??? (???) <2DDC5A18-35EE-5B59-10D8-0F6925DB3858> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib
    0x7fff83f55000 -     0x7fff84116fef  libSystem.B.dylib 125.2.11 (compatibility 1.0.0) <9AB4F1D1-89DC-0E8A-DC8E-A4FE4D69DB69> /usr/lib/libSystem.B.dylib
    0x7fff84117000 -     0x7fff843a1fe7  com.apple.security 6.1.2 (55002) <FD0B5AD4-74DB-7ED8-90D3-6EC56FFA8557> /System/Library/Frameworks/Security.framework/Versions/A/Security
    0x7fff843a2000 -     0x7fff8442efef  SecurityFoundation ??? (???) <6860DE26-0D42-D1E8-CD7C-5B42D78C1E1D> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
    0x7fff8442f000 -     0x7fff84443ff7  com.apple.speech.synthesis.framework 3.10.35 (3.10.35) <63C87CF7-56B3-4038-8136-8C26E96AD42F> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis
    0x7fff84456000 -     0x7fff84490fff  libcups.2.dylib 2.8.0 (compatibility 2.0.0) <539EBFDD-96D6-FB07-B128-40232C408757> /usr/lib/libcups.2.dylib
    0x7fff84491000 -     0x7fff84608fe7  com.apple.CoreFoundation 6.6.6 (550.44) <BB4E5158-E47A-39D3-2561-96CB49FA82D4> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fff84609000 -     0x7fff84669fe7  com.apple.framework.IOKit 2.0 (???) <4F071EF0-8260-01E9-C641-830E582FA416> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
    0x7fff8466a000 -     0x7fff846affff  com.apple.CoreMediaIOServices 140.0 (1496) <D93293EB-0B84-E97D-E78C-9FE8D48AF58E> /System/Library/PrivateFrameworks/CoreMediaIOServices.framework/Versions/A/CoreMediaIOServices
    0x7fff84811000 -     0x7fff84811ff7  com.apple.Cocoa 6.6 (???) <68B0BE46-6E24-C96F-B341-054CF9E8F3B6> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    0x7fff84812000 -     0x7fff848c7fe7  com.apple.ink.framework 1.3.3 (107) <D76C7591-B060-E2DE-6634-968FDABD87EF> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink
    0x7fff848c8000 -     0x7fff848d7fef  com.apple.opengl 1.6.14 (1.6.14) <ECAE2D12-5BE3-46E7-6EE5-563B80B32A3E> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
    0x7fff848d8000 -     0x7fff84957fe7  com.apple.audio.CoreAudio 3.2.6 (3.2.6) <79E256EB-43F1-C7AA-6436-124A4FFB02D0> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
    0x7fff84958000 -     0x7fff84d9cfef  libLAPACK.dylib 219.0.0 (compatibility 1.0.0) <E14EC4C6-B055-A4AC-B971-42AB644E4A7C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
    0x7fff84d9d000 -     0x7fff84ea7ff7  com.apple.MeshKitIO 1.1 (49.2) <B9E2EB6C-66F6-CFAD-4530-DDA4355D7FBA> /System/Library/PrivateFrameworks/MeshKit.framework/Versions/A/Frameworks/MeshKitIO.framework/Versions/A/MeshKitIO
    0x7fff84ea8000 -     0x7fff84f73fff  ColorSyncDeprecated.dylib 4.6.0 (compatibility 1.0.0) <86982FBB-B224-CBDA-A9AD-8EE97BDB8681> /System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Versions/A/Resources/ColorSyncDeprecated.dylib
    0x7fff85157000 -     0x7fff8516cff7  com.apple.LangAnalysis 1.6.6 (1.6.6) <DC999B32-BF41-94C8-0583-27D9AB463E8B> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis
    0x7fff85197000 -     0x7fff851d8fff  com.apple.SystemConfiguration 1.10.8 (1.10.2) <78D48D27-A9C4-62CA-2803-D0BBED82855A> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
    0x7fff851d9000 -     0x7fff851f9ff7  com.apple.DirectoryService.Framework 3.6 (621.11) <AD76C757-6701-BDB5-631E-1CB77D669586> /System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryService
    0x7fff851fa000 -     0x7fff851feff7  libmathCommon.A.dylib 315.0.0 (compatibility 1.0.0) <95718673-FEEE-B6ED-B127-BCDBDB60D4E5> /usr/lib/system/libmathCommon.A.dylib
    0x7fff851ff000 -     0x7fff85205ff7  IOSurface ??? (???) <04EDCEDE-E36F-15F8-DC67-E61E149D2C9A> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
    0x7fff85244000 -     0x7fff8524aff7  com.apple.DiskArbitration 2.3 (2.3) <857F6E43-1EF4-7D53-351B-10DE0A8F992A> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
    0x7fff85303000 -     0x7fff85303ff7  com.apple.vecLib 3.6 (vecLib 3.6) <08D3D45D-908B-B86A-00BA-0F978D2702A7> /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
    0x7fff85304000 -     0x7fff8530efff  com.apple.DisplayServicesFW 2.3.3 (289) <97F62F36-964A-3E17-2A26-A0EEF63F4BDE> /System/Library/PrivateFrameworks/DisplayServices.framework/Versions/A/DisplayServices
    0x7fff8530f000 -     0x7fff8544dfff  com.apple.CoreData 102.1 (251) <782F29CA-ACC7-4A77-5772-52FBE2CEFB5E> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
    0x7fff8544e000 -     0x7fff8547dff7  com.apple.quartzfilters 1.6.0 (1.6.0) <9CECB4FC-1CCF-B8A2-B935-5888B21CBEEF> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzFilters.framework/Versions/A/QuartzFilters
    0x7fff858e4000 -     0x7fff85966fff  com.apple.QuickLookUIFramework 2.3 (327.6) <9093682A-0E2D-7D27-5F22-C96FD00AE970> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuickLookUI.framework/Versions/A/QuickLookUI
    0x7fff85ab6000 -     0x7fff85af4fe7  libFontRegistry.dylib ??? (???) <395D7C0D-36B5-B353-0DC8-51ABC0B1C030> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib
    0x7fff85af5000 -     0x7fff85af6fff  liblangid.dylib ??? (???) <EA4D1607-2BD5-2EE2-2A3B-632EEE5A444D> /usr/lib/liblangid.dylib
    0x7fff85af7000 -     0x7fff85af7ff7  com.apple.Accelerate.vecLib 3.6 (vecLib 3.6) <DA9BFF01-40DF-EBD5-ABB7-787DAF2D77CF> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
    0x7fff85af8000 -     0x7fff85e2cfef  com.apple.CoreServices.CarbonCore 861.39 (861.39) <1386A24D-DD15-5903-057E-4A224FAF580B> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
    0x7fff85e2d000 -     0x7fff86637fe7  libBLAS.dylib 219.0.0 (compatibility 1.0.0) <EEE5CE62-9155-6559-2AEA-05CED0F5B0F1> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
    0x7fff86b2f000 -     0x7fff86b46fff  com.apple.ImageCapture 6.1 (6.1) <79AB2131-2A6C-F351-38A9-ED58B25534FD> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture
    0x7fff86b47000 -     0x7fff86c66fe7  libcrypto.0.9.8.dylib 0.9.8 (compatibility 0.9.8) <14115D29-432B-CF02-6B24-A60CC533A09E> /usr/lib/libcrypto.0.9.8.dylib
    0x7fff86c67000 -     0x7fff86ef2fef  com.apple.JavaScriptCore 6534.52 (6534.52.7) <C8340CAE-B6AC-BCBB-24AB-A6B8B1276C23> /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore
    0x7fff86ef3000 -     0x7fff871f1fff  com.apple.HIToolbox 1.6.5 (???) <AD1C18F6-51CB-7E39-35DD-F16B1EB978A8> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox
    0x7fff871ff000 -     0x7fff8729ffff  com.apple.LaunchServices 362.3 (362.3) <B90B7C31-FEF8-3C26-BFB3-D8A48BD2C0DA> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
    0x7fff872c4000 -     0x7fff882f6fef  com.apple.WebCore 6534.52 (6534.52.11) <78740DDE-7B9C-92EC-9CF6-C8DD1815B609> /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/WebCore
    0x7fff884b5000 -     0x7fff885cffff  libGLProgrammability.dylib ??? (???) <D1650AED-02EF-EFB3-100E-064C7F018745> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib
    0x7fff885d0000 -     0x7fff885deff7  libkxld.dylib ??? (???) <8145A534-95CC-9F3C-B78B-AC9898F38C6F> /usr/lib/system/libkxld.dylib
    0x7fff885eb000 -     0x7fff885fcff7  libz.1.dylib 1.2.3 (compatibility 1.0.0) <FB5EE53A-0534-0FFA-B2ED-486609433717> /usr/lib/libz.1.dylib
    0x7fff885fd000 -     0x7fff8876dfff  com.apple.QTKit 7.7 (1789) <212AE7F7-EFDB-275D-88FB-33B9CF809842> /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit
    0x7fff8876e000 -     0x7fff88771ff7  libCoreVMClient.dylib ??? (???) <75819794-3B7A-8944-D004-7EA6DD7CE836> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib
    0x7fff8881c000 -     0x7fff8887efe7  com.apple.datadetectorscore 2.0 (80.7) <5F0F865C-A80F-FE7F-7DF8-894A4A99EACA> /System/Library/PrivateFrameworks/DataDetectorsCore.framework/Versions/A/DataDetectorsCore
    0x7fff8887f000 -     0x7fff888c9ff7  com.apple.Metadata 10.6.3 (507.15) <DE238BE4-5E22-C4D5-CF5C-3D50FDEE4701> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
    0x7fff888ca000 -     0x7fff888d5ff7  com.apple.speech.recognition.framework 3.11.1 (3.11.1) <60484D84-BA63-13DD-50E9-ABDA402C3C45> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition
    0x7fff888d6000 -     0x7fff889feff7  com.apple.MediaToolbox 0.484.60 (484.60) <F921A5E6-E260-03B4-1458-E5814FA1924D> /System/Library/PrivateFrameworks/MediaToolbox.framework/Versions/A/MediaToolbox
    0x7fff889ff000 -     0x7fff88a1cff7  libPng.dylib ??? (???) <A6D093D2-CA9D-2035-9C11-0AE98585C6F1> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
    0x7fff88c7c000 -     0x7fff88c7ffff  com.apple.help 1.3.2 (41.1) <BD1B0A22-1CB8-263E-FF85-5BBFDE3660B9> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help
    0x7fff88c80000 -     0x7fff88c81ff7  com.apple.TrustEvaluationAgent 1.1 (1) <306FD9EE-A301-41D5-EBDE-2FC52F28229C> /System/Library/PrivateFrameworks/TrustEvaluationAgent.framework/Versions/A/TrustEvaluationAgent
    0x7fff88d44000 -     0x7fff8924aff7  com.apple.VideoToolbox 0.484.60 (484.60) <F55EF548-56E4-A6DF-F3C9-6BA4CFF5D629> /System/Library/PrivateFrameworks/VideoToolbox.framework/Versions/A/VideoToolbox
    0x7fff8924b000 -     0x7fff8927cfff  libGLImage.dylib ??? (???) <562565E1-AA65-FE96-13FF-437410C886D0> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib
    0x7fff8927d000 -     0x7fff892c4fff  com.apple.QuickLookFramework 2.3 (327.6) <11DFB135-24A6-C0BC-5B97-ECE352A4B488> /System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook
    0x7fff89bd7000 -     0x7fff89cb4fff  com.apple.vImage 4.1 (4.1) <C3F44AA9-6F71-0684-2686-D3BBC903F020> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
    0x7fff89ef8000 -     0x7fff89f0efe7  com.apple.MultitouchSupport.framework 207.11 (207.11) <8233CE71-6F8D-8B3C-A0E1-E123F6406163> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport
    0x7fff89fea000 -     0x7fff89ff9fff  com.apple.NetFS 3.2.2 (3.2.2) <7CCBD70E-BF31-A7A7-DB98-230687773145> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS
    0x7fff89ffa000 -     0x7fff8a01bfff  libresolv.9.dylib 41.1.0 (compatibility 1.0.0) <9410EC7F-4D24-6740-AFEE-90405750FAD7> /usr/lib/libresolv.9.dylib
    0x7fff8a01c000 -     0x7fff8a0d9fff  com.apple.CoreServices.OSServices 359.2 (359.2) <BBB8888E-18DE-5D09-3C3A-F4C029EC7886> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
    0x7fff8a0fb000 -     0x7fff8a136fff  com.apple.AE 496.5 (496.5) <208DF391-4DE6-81ED-C697-14A2930D1BC6> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
    0x7fff8a137000 -     0x7fff8a137ff7  com.apple.ApplicationServices 38 (38) <10A0B9E9-4988-03D4-FC56-DDE231A02C63> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
    0x7fff8a162000 -     0x7fff8a174fe7  libsasl2.2.dylib 3.15.0 (compatibility 3.0.0) <76B83C8D-8EFE-4467-0F75-275648AFED97> /usr/lib/libsasl2.2.dylib
    0x7fff8a175000 -     0x7fff8a189fff  libGL.dylib ??? (???) <2ECE3B0F-39E1-3938-BF27-7205C6D0358B> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
    0x7fff8a18a000 -     0x7fff8a18aff7  com.apple.Accelerate 1.6 (Accelerate 1.6) <2BB7D669-4B40-6A52-ADBD-DA4DB3BC0B1B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
    0x7fff8a274000 -     0x7fff8a27aff7  com.apple.CommerceCore 1.0 (9.1) <3691E9BA-BCF4-98C7-EFEC-78DA6825004E> /System/Library/PrivateFrameworks/CommerceKit.framework/Versions/A/Frameworks/CommerceCore.framework/Versions/A/CommerceCore
    0x7fff8a27b000 -     0x7fff8a2ecff7  com.apple.AppleVAFramework 4.10.27 (4.10.27) <6CDBA3F5-6C7C-A069-4716-2B6C3AD5001F> /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
    0x7fff8a2ed000 -     0x7fff8a56ffff  com.apple.Foundation 6.6.8 (751.63) <E10E4DB4-9D5E-54A8-3FB6-2A82426066E4> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    0x7fff8a5a5000 -     0x7fff8a622fef  libstdc++.6.dylib 7.9.0 (compatibility 7.0.0) <35ECA411-2C08-FD7D-11B1-1B7A04921A5C> /usr/lib/libstdc++.6.dylib
    0x7fff8a623000 -     0x7fff8a64aff7  libJPEG.dylib ??? (???) <921A3A14-A69B-F393-1678-5A5D32D4BDF2> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib
    0x7fff8a64b000 -     0x7fff8a696fef  com.apple.ImageCaptureCore 1.1 (1.1) <F23CA537-4F18-76FC-8D9C-ED6E645186FC> /System/Library/Frameworks/ImageCaptureCore.framework/Versions/A/ImageCaptureCore
    0x7fff8a697000 -     0x7fff8a698fff  com.apple.MonitorPanelFramework 1.3.0 (1.3.0) <5062DACE-FCE7-8E41-F5F6-58821778629C> /System/Library/PrivateFrameworks/MonitorPanel.framework/Versions/A/MonitorPanel
    0x7fff8a699000 -     0x7fff8a6e8ff7  com.apple.DirectoryService.PasswordServerFramework 6.1 (6.1) <01B370FB-D524-F660-3826-E85B7F0D85CD> /System/Library/PrivateFrameworks/PasswordServer.framework/Versions/A/PasswordServer
    0x7fffffe00000 -     0x7fffffe01fff  libSystem.B.dylib ??? (???) <9AB4F1D1-89DC-0E8A-DC8E-A4FE4D69DB69> /usr/lib/libSystem.B.dylib

Model: MacBookPro6,1, BootROM MBP61.0057.B0C, 2 processors, Intel Core i7, 2.66 GHz, 8 GB, SMC 1.57f17
Graphics: NVIDIA GeForce GT 330M, NVIDIA GeForce GT 330M, PCIe, 512 MB
Graphics: Intel HD Graphics, Intel HD Graphics, Built-In, 288 MB
Memory Module: global_name
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x93), Broadcom BCM43xx 1.0 (5.10.131.42.4)
Bluetooth: Version 2.4.5f3, 2 service, 19 devices, 1 incoming serial ports
Network Service: AirPort, AirPort, en1
Serial ATA Device: ST9500420ASG, 465,76 GB
Serial ATA Device: HL-DT-ST DVDRW  GS23N
USB Device: Hub, 0x0424  (SMSC), 0x2514, 0xfa100000 / 2
USB Device: BRCM2070 Hub, 0x0a5c  (Broadcom Corp.), 0x4500, 0xfa110000 / 4
USB Device: Bluetooth USB Host Controller, 0x05ac  (Apple Inc.), 0x8218, 0xfa113000 / 7
USB Device: Apple Internal Keyboard / Trackpad, 0x05ac  (Apple Inc.), 0x0237, 0xfa120000 / 3
USB Device: Hub, 0x0424  (SMSC), 0x2514, 0xfd100000 / 2
USB Device: IR Receiver, 0x05ac  (Apple Inc.), 0x8242, 0xfd120000 / 4
USB Device: Built-in iSight, 0x05ac  (Apple Inc.), 0x8507, 0xfd110000 / 3
Jakob Leben
2012-02-22 10:42:15 UTC
Permalink
Hello, Christophe!

On Wed, Feb 22, 2012 at 10:34 AM, christophe lengelé <
Post by christophe lengelé
Is there a chance that Qt will be as performant as cocoa in the future in terms of CPU ?
Otherwise, why to make disappear cocoa ?
And maybe there is a better (programming) way than using tabbed views
(quark) to get a better performance ?
The TabbedView quark uses Pen to draw the tabs. Most probably, it is Pen
that is to blame for the performance difference between Qt and Cocoa. We
have experienced some issues with inefficient use of graphics card support
by Qt Pen.

When switching to Qt, I would suggest to change your colde to using Qt
layouts (See the GUI->Layout category in the new help browser). In
particular the StackLayout offers similar functionality to the TabbedView,
except you would need to implement the display of tab names yourself.

In general, I would avoid suggest avoiding the use of Pen unless you really
need to draw some custom graphics. And when you do use Pen, whenever
possible, try turning the anti-aliasing off with "Pen.smoothing = false",
since anti-aliasing usually drastically increases the CPU usage.

As for the difference between Cocoa and Qt in memory usage, it could maybe
be explained by the fact that the Cocoa libraries are loaded by your system
by default, and shared with other processes, while for Qt, SuperCollider
might be the only one using the Qt libraries, and they are loaded just for
SuperCollder alone.

In any case, even the fact that your application needed 1 minute to load
the GUI part with Cocoa, is to me indicative that you could probably do a
lot of optimization. But it is hard to say how, without taking a detailed
look at your application.

Best regards,
Jakob
felix
2012-02-22 15:38:41 UTC
Permalink
wasn't there another tip as well ? something about switching to open gl for
Qt rendering ? it was much faster.

the downside was that the rest of the interface looked much worse.

but if I remember correctly there was some work attempted to get just the
UserView to use OpenGL



..
http://soundcloud.com/crucialfelix
http://github.com/crucialfelix
.
Post by Jakob Leben
In general, I would avoid suggest avoiding the use of Pen unless you
really need to draw some custom graphics. And when you do use Pen, whenever
possible, try turning the anti-aliasing off with "Pen.smoothing = false",
since anti-aliasing usually drastically increases the CPU usage.
felix
2012-02-22 16:15:06 UTC
Permalink
so yes, Qt user view will probably become much more performant in the future
Post by felix
but if I remember correctly there was some work attempted to get just the
Post by felix
UserView to use OpenGL
That's true. That work has stalled a bit though... I don't think I'll have
time for it until the final 3.5, so it will have to be later...
Jonatan Liljedahl
2012-02-22 21:41:22 UTC
Permalink
Problem is, while switching to opengl renderer worked excellent
(performance wise) on my old ubuntu 10 system, it gives me black windows
and errors on ubuntu 11.10, same hardware.. So, even if it's possible to
make QUserView use opengl, it has to be an option since it's not working
on all combination of X server, graphics driver and card. :/

I really hope we can find a solution to this that works on all (most)
systems, since currently the default QUserView performance is really bad.

/Jonatan
Post by felix
so yes, Qt user view will probably become much more performant in the future
Post by felix
but if I remember correctly there was some work attempted to get just the
Post by felix
UserView to use OpenGL
That's true. That work has stalled a bit though... I don't think I'll have
time for it until the final 3.5, so it will have to be later...
_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Daniel Mayer
2012-02-23 00:31:38 UTC
Permalink
Hi,

some time ago (on cocoa) I‘ve been working on a pitch data
representation gui in keyboard style. Here‘s a rough core code as
example.

First thing to be done for speed was, that I had to eliminate
FlowLayout and place the Views ecplicitely, then unifying the
mouseDownAction function that looks up the view in a IdentityDictionary.
Don‘t know if this is a speed-optimal solution yet ...
anyway the speed factor from cocoa to qt is about 1 : 100 here !
(OSX 10.5.8, iMac 2.8 GHz, Core Duo, SC 3.5-rc2)

On cocoa no problem with 5000 rows (400000 UserViews).


(
~guiTest = { |numV = 1, numH = 80|
var window, scrollView, dataView, scrollViewHeight = 400,
dataViewWidth = 700, dataViewHeight = 2000,
pitchViews, keyWidth, listViewHeight, gapX, gapY,
pitchViewsMouseDownAction;

gapX = 2;
gapY = 2;
keyWidth = 6;
listViewHeight = 12;

pitchViewsMouseDownAction = { /* ...gets indices from
IdentityDictionary of Views */ };

dataViewHeight = (listViewHeight + gapY) * numV + 10;
pitchViews = List.newClear(numV);
window = Window(window, Rect(rrand(100, 400), rrand(200, 600), 800,
500));
scrollView = ScrollView(window, Rect(30, 30, dataViewWidth,
scrollViewHeight));
dataView = CompositeView(scrollView, Rect(0, 0, dataViewWidth - 12,
dataViewHeight));

numV.do { |i|
pitchViews[i] = Array.newClear(numH);

numH.do { |j|
pitchViews[i][j] = UserView(dataView, Rect(j * (keyWidth + gapX),
i * (listViewHeight + gapY), keyWidth, listViewHeight))
.background_(Color.white)
.mouseDownAction_(pitchViewsMouseDownAction);
}
};
window.front;
};

)


GUI.cocoa;


{ ~guiTest.(50) }.bench
--> 0.056626303999991

{ ~guiTest.(500) }.bench
--> 0.39157481

{ ~guiTest.(1000) }.bench
--> 0.802526208

{ ~guiTest.(3000) }.bench
--> 2.421133084

{ ~guiTest.(5000) }.bench
--> 4.341146124


GUI.qt;

{ ~guiTest.(50) }.bench
--> 6.225915213


If this comes from an issue with QUserView an improvement would be
great ...

Regards

Daniel

http://daniel-mayer.at
Post by Jonatan Liljedahl
Problem is, while switching to opengl renderer worked excellent
(performance wise) on my old ubuntu 10 system, it gives me black
windows and errors on ubuntu 11.10, same hardware.. So, even if it's
possible to make QUserView use opengl, it has to be an option since
it's not working on all combination of X server, graphics driver and
card. :/
I really hope we can find a solution to this that works on all
(most) systems, since currently the default QUserView performance is
really bad.
/Jonatan
Post by felix
so yes, Qt user view will probably become much more performant in the future
On Wed, Feb 22, 2012 at 4:48 PM, Jakob
Post by felix
but if I remember correctly there was some work attempted to get just the
Post by felix
UserView to use OpenGL
That's true. That work has stalled a bit though... I don't think I'll have
time for it until the final 3.5, so it will have to be later...
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
felix
2012-02-23 02:58:11 UTC
Permalink
but the FlowLayout is only active when its placing / calculating where the
view should go. after that it should be completely inert

the speed problems are with rendering the view, updating it when parts of
the view are dirty etc. mousing over it
some time ago (on cocoa) I‘ve been working on a pitch data
representation gui in keyboard style. Here‘s a rough core code as example.
*> First thing to be done for speed was, that I had to eliminate
FlowLayout and place the Views ecplicitely,*
Daniel Mayer
2012-02-23 14:34:27 UTC
Permalink
Post by felix
but the FlowLayout is only active when its placing / calculating
where the view should go. after that it should be completely inert
the speed problems are with rendering the view, updating it when
parts of the view are dirty etc. mousing over it
Well, actually two different things. Suppose FlowLayout wasn't
thought to manage huge masses of UserViews, also it wasn't really
needed here,
I just mentioned what blocked such a kind of arrangement in my first
tries.
The problems in Qt concern building *and* handling a large amount of
UserViews.

Cheers

Daniel

http://daniel-mayer.at



_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Scott Carver
2012-02-24 17:40:55 UTC
Permalink
This thread got off the original topic, but -

Anyone have an explanation for why with GUI.qt, Daniel's example is /substantially/ slower?

The only QT-related hotspot I see when profiling is what looks like some layout-related event passing, but that's relatively minor. Mostly, there is a bunch of GC and interpreter time spent (not the case w/ Cocoa). Is QT executing that much more sclang code than Cocoa, to instantiate the same UI objects?

- Scott Carver
Post by Daniel Mayer
Hi,
some time ago (on cocoa) I‘ve been working on a pitch data
representation gui in keyboard style. Here‘s a rough core code as example.
First thing to be done for speed was, that I had to eliminate
FlowLayout and place the Views ecplicitely, then unifying the
mouseDownAction function that looks up the view in a IdentityDictionary.
Don‘t know if this is a speed-optimal solution yet ...
anyway the speed factor from cocoa to qt is about 1 : 100 here !
(OSX 10.5.8, iMac 2.8 GHz, Core Duo, SC 3.5-rc2)
On cocoa no problem with 5000 rows (400000 UserViews).
(
~guiTest = { |numV = 1, numH = 80|
var window, scrollView, dataView, scrollViewHeight = 400, dataViewWidth = 700, dataViewHeight = 2000,
pitchViews, keyWidth, listViewHeight, gapX, gapY, pitchViewsMouseDownAction;
gapX = 2;
gapY = 2;
keyWidth = 6;
listViewHeight = 12;
pitchViewsMouseDownAction = { /* ...gets indices from IdentityDictionary of Views */ };
dataViewHeight = (listViewHeight + gapY) * numV + 10;
pitchViews = List.newClear(numV);
window = Window(window, Rect(rrand(100, 400), rrand(200, 600), 800, 500));
scrollView = ScrollView(window, Rect(30, 30, dataViewWidth, scrollViewHeight));
dataView = CompositeView(scrollView, Rect(0, 0, dataViewWidth - 12, dataViewHeight));
numV.do { |i|
pitchViews[i] = Array.newClear(numH);
numH.do { |j|
pitchViews[i][j] = UserView(dataView, Rect(j * (keyWidth + gapX),
i * (listViewHeight + gapY), keyWidth, listViewHeight))
.background_(Color.white)
.mouseDownAction_(pitchViewsMouseDownAction);
}
};
window.front;
};
)
GUI.cocoa;
{ ~guiTest.(50) }.bench
--> 0.056626303999991
{ ~guiTest.(500) }.bench
--> 0.39157481
{ ~guiTest.(1000) }.bench
--> 0.802526208
{ ~guiTest.(3000) }.bench
--> 2.421133084
{ ~guiTest.(5000) }.bench
--> 4.341146124
GUI.qt;
{ ~guiTest.(50) }.bench
--> 6.225915213
If this comes from an issue with QUserView an improvement would be great ...
Regards
Daniel
http://daniel-mayer.at
Problem is, while switching to opengl renderer worked excellent (performance wise) on my old ubuntu 10 system, it gives me black windows and errors on ubuntu 11.10, same hardware.. So, even if it's possible to make QUserView use opengl, it has to be an option since it's not working on all combination of X server, graphics driver and card. :/
I really hope we can find a solution to this that works on all (most) systems, since currently the default QUserView performance is really bad.
/Jonatan
Post by felix
so yes, Qt user view will probably become much more performant in the future
Post by felix
but if I remember correctly there was some work attempted to get just the
Post by felix
UserView to use OpenGL
That's true. That work has stalled a bit though... I don't think I'll have
time for it until the final 3.5, so it will have to be later...
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
_______________________________________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Tim Blechmann
2012-02-24 17:59:05 UTC
Permalink
Post by Scott Carver
This thread got off the original topic, but -
Anyone have an explanation for why with GUI.qt, Daniel's example is /substantially/ slower?
The only QT-related hotspot I see when profiling is what looks like some
layout-related event passing, but that's relatively minor. Mostly, there is
a bunch of GC and interpreter time spent (not the case w/ Cocoa). Is QT
executing that much more sclang code than Cocoa, to instantiate the same UI
objects?
profiling daniel's code shows that a considerable time is spent inside qt:

40.24% libQtGui.so.4.7.4 [.] QApplication::compressEvent(QEvent*, QObject*, QPostEventList*) ◆
18.73% sclang [.] Interpret(VMGlobals*) ▒
15.30% sclang [.] _ZN5PyrGC9ScanSlotsEP7pyrslotl.part.24.32903 ▒
3.90% sclang [.] _ZN5PyrGC8NewFrameEmllb.constprop.6585 ▒
3.65% sclang [.] blockValue(VMGlobals*, int) ▒
2.80% sclang [.] _Z10slotRawIntP7pyrslot.local.2622 ▒
2.06% libc-2.13.so [.] __memmove_ssse3_back ▒

the longer the function runs, the more time is spent in compressEvent. it
seems to be a private qt function, though ... still a lot of time is also
spent in bytecode interpreter and garbage collector

cheers, tim

_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Scott Carver
2012-02-24 19:40:29 UTC
Permalink
Post by Tim Blechmann
Post by Scott Carver
This thread got off the original topic, but -
Anyone have an explanation for why with GUI.qt, Daniel's example is
/substantially/ slower?
The only QT-related hotspot I see when profiling is what looks like some
layout-related event passing, but that's relatively minor. Mostly, there is
a bunch of GC and interpreter time spent (not the case w/ Cocoa). Is QT
executing that much more sclang code than Cocoa, to instantiate the same UI
objects?
40.24% libQtGui.so.4.7.4 [.] QApplication::compressEvent(QEvent*, QObject*, QPostEventList*) ◆
18.73% sclang [.] Interpret(VMGlobals*) ▒
15.30% sclang [.] _ZN5PyrGC9ScanSlotsEP7pyrslotl.part.24.32903 ▒
3.90% sclang [.] _ZN5PyrGC8NewFrameEmllb.constprop.6585 ▒
3.65% sclang [.] blockValue(VMGlobals*, int) ▒
2.80% sclang [.] _Z10slotRawIntP7pyrslot.local.2622 ▒
2.06% libc-2.13.so [.] __memmove_ssse3_back ▒
the longer the function runs, the more time is spent in compressEvent. it
seems to be a private qt function, though ... still a lot of time is also
spent in bytecode interpreter and garbage collector
cheers, tim
For ~guiTest.(30), I'm seeing quite a lot more time in GC stuff, profiling on Mac w/ Instruments (compressEvent jumping to around 15% with ~guiTest.(200)).

Total Time Running Time Symbol Name
1594.0 1594.0ms 30.6% PyrGC::ScanOneObj()
986.0 986.0ms 18.9% Interpret(VMGlobals*)
454.0 454.0ms 8.7% blockValue(VMGlobals*, int)
241.0 241.0ms 4.6% returnFromBlock(VMGlobals*)
180.0 180.0ms 3.4% QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
171.0 171.0ms 3.2% PyrGC::Allocate(unsigned long, int, bool)
130.0 130.0ms 2.5% PyrGC::NewFrame(unsigned long, long, long, bool)
123.0 123.0ms 2.3% QApplication::compressEvent(QEvent*, QObject*, QPostEventList*)

For ~guiTest.(5), I see around 1547000 hits to PyrGC::ScanOneObj, compared to 7000 in the cocoa case. That's a BIG difference. Hard to tell in a release build what the cause of the extra calls is, other than just a lot more allocations.


- Scott
_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/

Fredrik Olofsson
2012-02-22 23:17:26 UTC
Permalink
Post by felix
so yes, Qt user view will probably become much more performant in the future
but if I remember correctly there was some work attempted to get just the UserView to use OpenGL
That's true. That work has stalled a bit though... I don't think I'll have time for it until the final 3.5, so it will have to be later...
i don't have any issues with QUserView speed. i can't spot any difference in speed SCUserView vs QUserView. (maybe i'm doing something wrong ? ;-) this is on a osx 10.6.8 intel macbook pro running sc3.5. here's a test that's pretty heavy on the cpu. if i increase n and really push it then qt is maybe even faster. or maybe the problem occurs when mixing/overlapping userview and other views in the same window (speculating).


GUI.cocoa
GUI.qt
(
var width= 640, height= 480, w, theta= 0, drawFunc, asdf= 0, u, n= 40;
w= Window("trail test7", Rect(128, 64, width, height), false);
w.view.background= Color.black;
drawFunc= {
Pen.smoothing= true;
Pen.width= 0.5;
Pen.fillColor= Color.green;
Pen.stringAtPoint(u.frameRate.round(0.001).asString, Point(10, 10));
theta= theta+(sin(u.frame*2pi)*0.001)+0.001;
asdf= sin(u.frame%4000/4000*2pi)*0.03+1.01;
Pen.strokeColor= Color.grey(1, 0.5);
Pen.push;
Pen.translate(width*0.5, height*0.5);
Pen.scale(2, 2);
n.do{|i|
Pen.rotate(theta*(i*0.001+1));
Pen.scale(1.021, asdf);
Pen.strokeOval(Rect.aboutPoint(Point(0, 0), 40, 30));
};
Pen.pop;
};
u= UserView(w, Rect(0, 0, width, height))
.drawFunc_(drawFunc)
.animate_(true);
w.front;
CmdPeriod.doOnce({if(w.isClosed.not, {w.close})});
)


_f


#|
fredrikolofsson.com musicalfieldsforever.com
|#


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
felix
2012-02-23 02:56:16 UTC
Permalink
its a linux issue

remember we talked about it and you did a test and it seemed fine (os
x) so we shrugged.

but on linux depending on graphic card it can be completely unusable,
and IIRC its not just Qt.

this was reported when I released BoxMatrix in crucialview : its
really unusable :(

I'd like to play around with the web view and see if something in
canvas using javascript / V8 is easy to work with. this seems to me
to be the platform that is getting the most push for performance.
html5 / js / css is much faster than our user views and there are new
libraries popping up for it all the time.



..
http://soundcloud.com/crucialfelix
http://github.com/crucialfelix
.



On Thu, Feb 23, 2012 at 12:17 AM, Fredrik Olofsson
i don't have any issues with QUserView speed.  i can't spot any difference in speed SCUserView vs QUserView.  (maybe i'm doing something wrong ? ;-)  this is on a osx
_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
Jakob Leben
2012-02-22 15:48:59 UTC
Permalink
Post by felix
wasn't there another tip as well ? something about switching to open gl
for Qt rendering ? it was much faster.
the downside was that the rest of the interface looked much worse.
Yes, that's why I didn't think it was a viable solution.
Post by felix
but if I remember correctly there was some work attempted to get just the
UserView to use OpenGL
That's true. That work has stalled a bit though... I don't think I'll have
time for it until the final 3.5, so it will have to be later...
christophe lengelé
2012-02-23 11:48:45 UTC
Permalink
The TabbedView quark uses Pen to draw the tabs. Most probably, it is Pen that is to blame for the performance difference between Qt and Cocoa. We have experienced some issues with inefficient use of graphics card support by Qt Pen.
When switching to Qt, I would suggest to change your colde to using Qt layouts (See the GUI->Layout category in the new help browser). In particular the StackLayout offers similar functionality to the TabbedView, except you would need to implement the display of tab names yourself.
In general, I would avoid suggest avoiding the use of Pen unless you really need to draw some custom graphics. And when you do use Pen, whenever possible, try turning the anti-aliasing off with "Pen.smoothing = false", since anti-aliasing usually drastically increases the CPU usage.
In any case, even the fact that your application needed 1 minute to load the GUI part with Cocoa, is to me indicative that you could probably do a lot of optimization. But it is hard to say how, without taking a detailed look at your application.
In fact, I used lots of tabbed views nested within other tabbed views that show several composite views.
And I had a lot of RoundNumberBoxes, SmoothButtons that make also extensive use of Pen,
and especially SmoothSliders and SmoothRangeSliders, that included some little nice features for me before.

Then, I'll use StackLayout & I'll check if most features exist with normal qt sliders and change them.
I'll send you the GUI part of the program as soon as the changes are done (if you agree) just to get quick performance tips.

btw, is it possible to turn off anti-aliasing for those GUI included in wslib quark (just to check quickly if the decrease of CPU makes the program usable in qt) ?

As indicated, the mixing/overlapping of several userviews in the same window seem not to be very quick in qt.
I'm not a specialist, but as indicated by felix the use of html5 / js / css for userviews and GUI may be a good solution ?

Thanks for all,
Christophe
felix
2012-02-23 15:51:12 UTC
Permalink
btw. I'm only thinking html5/js/css(and canvas!) for large views that are
essentially complete interfaces.

not for replace of single user views

I assume there is significant overhead for each one of these webviews and
you wouldn't want to have more than a few active at once.

the other win would be that the html5 version could be put online as well
as used locally. a possible method for processing style publishing


..
http://soundcloud.com/crucialfelix
http://github.com/crucialfelix
.



On Thu, Feb 23, 2012 at 12:48 PM, christophe lengelé <
I'm not a specialist, but as indicated by felix the use of html5 / js /
css for userviews and GUI may be a good solution ?
Thanks for all,
Christophe
Jonatan Liljedahl
2012-02-23 16:34:46 UTC
Permalink
Post by felix
btw. I'm only thinking html5/js/css(and canvas!) for large views that are
essentially complete interfaces.
not for replace of single user views
I assume there is significant overhead for each one of these webviews and
you wouldn't want to have more than a few active at once.
the other win would be that the html5 version could be put online as well
as used locally. a possible method for processing style publishing
yep, this would be really cool. and I can imagine it would attract all
those webdesign experts to make nice user interfaces.

all that is needed is to export a JS function to call back into sclang,
then we have a two-way bridge to build anything else upon.

/Jonatan

_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
felix
2012-02-23 18:18:44 UTC
Permalink
another way is what I was working on with the API quark.
you define functions and can then mount those to OSC

the next step is to write a simple python or Node.js server that brokers
html to OSC requests. and even returns results (async)

the final goal would be that a javascript object would be available that
has all the methods of a specific API object in sclang and can communicate
seamlessly with it.

patch = new SCAPI('host:port','/osc/path/to/app/endpoint');

patch.play;
patch.set('freq',440);
patch.animate('freq',100,2.0,'swing');

so you write your musical application in sc and use the API for all access.
I do this already and write my apps to use API. ie. the gui talks to the
api object, not to the model.

so when I get python or javascript version of API then all of my old apps
are already accessible

the advantage is that you don't think in terms of 2 languages talking, but
only of messages on a network.
Post by Jonatan Liljedahl
yep, this would be really cool. and I can imagine it would attract all
those webdesign experts to make nice user interfaces.
all that is needed is to export a JS function to call back into sclang,
then we have a two-way bridge to build anything else upon.
felix
2012-02-23 18:23:43 UTC
Permalink
sorry: brokers http to OSC requests

maps the url to an osc path and passes the GET args

results returned as json

$.getJSON("sc-website/osc/play/patch",
{'instr':"duck.duck.go",'freq':300},
function(response) {
var synthID = response['id'];
})
Post by felix
the next step is to write a simple python or Node.js server that brokers
html to OSC requests. and even returns results (async)
Jonatan Liljedahl
2012-02-23 20:45:49 UTC
Permalink
Yes, this is very nice. But we shouldn't need another language to create
the bridge (python, node.js, etc..). All we need is to export a function
to the WebView JS that calls back to sclang with a string. Then this
could be used to transfer SCAPI calls both ways. The OSC command path
concept could be used, even if it's not actually OSC.

/Jonatan
Post by felix
another way is what I was working on with the API quark.
you define functions and can then mount those to OSC
the next step is to write a simple python or Node.js server that brokers
html to OSC requests. and even returns results (async)
the final goal would be that a javascript object would be available that
has all the methods of a specific API object in sclang and can communicate
seamlessly with it.
patch = new SCAPI('host:port','/osc/path/to/app/endpoint');
patch.play;
patch.set('freq',440);
patch.animate('freq',100,2.0,'swing');
so you write your musical application in sc and use the API for all access.
I do this already and write my apps to use API. ie. the gui talks to the
api object, not to the model.
so when I get python or javascript version of API then all of my old apps
are already accessible
the advantage is that you don't think in terms of 2 languages talking, but
only of messages on a network.
Post by Jonatan Liljedahl
yep, this would be really cool. and I can imagine it would attract all
those webdesign experts to make nice user interfaces.
all that is needed is to export a JS function to call back into sclang,
then we have a two-way bridge to build anything else upon.
_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
felix
2012-02-23 22:20:23 UTC
Permalink
as you said in the other thread this will be great/essential for being able
to execute sc code in an in an internal web view

I'm thinking here about remote browsers and also javascript driven mobile
apps. and opening up SC apps to be talked to by more non-sc hackers.

the only reason I suggest a bridge server is that

1. its really easy to build and run
2. all http server code is already written in mature web languages
3. there is no true socket control in javascript so you can't directly talk
OSC

http://stackoverflow.com/questions/5487147/javascript-osc-library

and implementing an http server in sc isn't as hard as it sounds. just copy
the design from node.js

btw. this : http://charlie-roberts.com/Control/

is looking interesting !

the supercollider example shows creating widgets on a phone by sending osc
commands. me like.




..
http://soundcloud.com/crucialfelix
http://github.com/crucialfelix
.
Post by Jonatan Liljedahl
Yes, this is very nice. But we shouldn't need another language to create
the bridge (python, node.js, etc..). All we need is to export a function to
the WebView JS that calls back to sclang with a string. Then this could be
used to transfer SCAPI calls both ways. The OSC command path concept could
be used, even if it's not actually OSC.
/Jonatan
Post by felix
another way is what I was working on with the API quark.
you define functions and can then mount those to OSC
the next step is to write a simple python or Node.js server that brokers
html to OSC requests. and even returns results (async)
the final goal would be that a javascript object would be available that
has all the methods of a specific API object in sclang and can communicate
seamlessly with it.
patch = new SCAPI('host:port','/osc/path/**to/app/endpoint');
patch.play;
patch.set('freq',440);
patch.animate('freq',100,2.0,'**swing');
so you write your musical application in sc and use the API for all access.
I do this already and write my apps to use API. ie. the gui talks to the
api object, not to the model.
so when I get python or javascript version of API then all of my old apps
are already accessible
the advantage is that you don't think in terms of 2 languages talking, but
only of messages on a network.
yep, this would be really cool. and I can imagine it would attract all
Post by Jonatan Liljedahl
those webdesign experts to make nice user interfaces.
all that is needed is to export a JS function to call back into sclang,
then we have a two-way bridge to build anything else upon.
______________________________**_________________
sc-users mailing list
info (subscription, etc.): http://www.beast.bham.ac.uk/**
research/sc_mailing_lists.**shtml<http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml>
archive: http://www.listarc.bham.ac.uk/**marchives/sc-users/<http://www.listarc.bham.ac.uk/marchives/sc-users/>
search: http://www.listarc.bham.ac.uk/**lists/sc-users/search/<http://www.listarc.bham.ac.uk/lists/sc-users/search/>
felix
2012-02-23 22:40:31 UTC
Permalink
https://github.com/automata/osc-web

the node.js server itself is here:

https://github.com/automata/osc-web/blob/master/node-osc/lib/osc.js

but it looks like the test web app uses sockets to send to the server ?
which then forwards it to UDP OSC ?

https://github.com/automata/osc-web/blob/master/test-app/test-app.js

anyway its a good start. I was thinking quite simple: take http requests
and map those to OSC requests


..
http://soundcloud.com/crucialfelix
http://github.com/crucialfelix
.
Post by felix
the only reason I suggest a bridge server is that
1. its really easy to build and run
Jonatan Liljedahl
2012-02-24 10:01:32 UTC
Permalink
Post by felix
as you said in the other thread this will be great/essential for being able
to execute sc code in an in an internal web view
I'm thinking here about remote browsers and also javascript driven mobile
apps. and opening up SC apps to be talked to by more non-sc hackers.
the only reason I suggest a bridge server is that
1. its really easy to build and run
2. all http server code is already written in mature web languages
3. there is no true socket control in javascript so you can't directly talk
OSC
Ah, yes. One could run the server, sclang and scsynth on a server
machine and stream the audio to the client, which uses JS and SCAPI
object. That would be nice.

Has anyone tried streaming audio from scsynth in realtime to a remote
standard web browser?

/Jonatan

_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: http://www.listarc.bham.ac.uk/marchives/sc-users/
search: http://www.listarc.bham.ac.uk/lists/sc-users/search/
felix
2012-02-24 16:52:01 UTC
Permalink
Ah, yes. One could run the server, sclang and scsynth on a server machine
and stream the audio to the client, which uses JS and SCAPI object. That
would be nice.
or just plug scsynth into a really big amplifier so that you can hear it
from wherever you're standing.

the web client could be tablets or phones or things in a gallery within
listening distance
Has anyone tried streaming audio from scsynth in realtime to a remote
standard web browser?
icecast works
Loading...