Latest Performance numbers
Here are the latest performance numbers from my testing. The timer was switched over to nanoseconds (thanks!) and is using the latest build where JIFS appears to be taking much less time. The numbers appear to be sane (my boot takes about 190 seconds so the TCPTimer:run method is probably called early in bootup and by the time I get in to shut profiling off and dump it it's up there too). The device bootup time counter appears to be wonky after the nanoseconds change, but haven't looked into it too much.
A lot of the work appears to be happening in WorkPlugin, but I'd guess that's mostly an artifact of not instrumenting some of the other core classes so their times are being aggregated into WorkPlugin. May try to instrument more packages this weekend, but get into (apparent) deadlocks during boot and having some issues debugging the kernel itself.
-Casey
Call Count | Aggregate Nanoseconds | Method |
1 | 188745990 | org.jnode.net.ipv4.tcp.TCPTimer:run |
1 | 149595204 | org.jnode.shell.CommandShell:run |
1 | 18420971 | org.jnode.work.WorkPlugin$WorkProcessor:process |
1 | 6242289 | org.jnode.work.WorkPlugin$WorkProcessor:process |
1 | 5464009 | org.jnode.work.WorkPlugin$WorkProcessor:process |
9 | 3760658 | org.jnode.fs.service.def.FileSystemTypeManager:createType |
1 | 3630607 | org.jnode.work.WorkPlugin$WorkProcessor:process |
1 | 3309833 | org.jnode.work.WorkPlugin$WorkProcessor:process |
2 | 2411395 | org.jnode.net.service.DefaultNetworkLayerManager:configureLayer |
1 | 2091883 | org.jnode.work.WorkPlugin$WorkProcessor:process |
1 | 1567369 | org.jnode.work.WorkPlugin$WorkProcessor:process |
147 | 1114114 | org.jnode.fs.jifs.files.JIFSFplugin:refresh |
1 | 794063 | org.jnode.fs.service.def.FileSystemPlugin:startPlugin |
1 | 715417 | org.jnode.net.ipv4.config.impl.IPv4ConfigurationPlugin:startPlugin |
1 | 703113 | org.jnode.shell.CommandShell: |
1 | 675150 | org.jnode.net.ipv4.layer.IPv4NetworkLayer: |
1 | 593176 | org.jnode.shell.CommandShell: |
1 | 565746 | org.jnode.fs.service.def.FileSystemPlugin: |
1 | 528973 | org.jnode.work.WorkPlugin:add |
1 | 446548 | org.jnode.fs.ramfs.def.RAMFSPlugin:startPlugin |
2 | 399605 | org.jnode.net.ipv4.config.impl.NetConfigurationData:isAutoConfigureUsingDhcp |
1 | 360313 | org.jnode.fs.iso9660.ISO9660FileSystem: |
1264 | 296079 | org.jnode.fs.jifs.JIFSFile:addStringln |
2 | 295550 | org.jnode.net.ipv4.config.impl.NetConfigurationData:getConfiguration |
1264 | 293289 | org.jnode.fs.jifs.JIFSFile:addStringln |
1 | 276910 | org.jnode.work.WorkPlugin: |
1 | 271448 | org.jnode.fs.service.def.FileSystemMounter:tryToMount |
1 | 269752 | org.jnode.fs.jifs.directories.JIFSDrootDir:checkInit |
2 | 261076 | org.jnode.awt.font.def.DefaultFontManager:configureProvider |
1 | 257755 | org.jnode.net.service.DefaultNetworkLayerManager:refreshNetworkLayers |
1 | 222797 | org.jnode.fs.service.def.FileSystemAPIImpl:getEntry |
1 | 218858 | org.jnode.fs.iso9660.ISO9660FileSystemType:create |
147 | 210698 | org.jnode.fs.jifs.files.JIFSFplugin:refresh |
374 | 193175 | org.jnode.net.ipv4.tcp.TCPControlBlockList:timeout |
1 | 180425 | org.jnode.shell.CommandShell:main |
1 | 176099 | org.jnode.fs.jifs.def.JIFSPlugin: |
1 | 170655 | org.jnode.log4j.config.Log4jConfigurePlugin:startPlugin |
1 | 167966 | org.jnode.fs.iso9660.ISO9660FileSystemType:create |
1 | 167362 | org.jnode.fs.service.def.FileSystemAPIImpl:getParentDirectoryEntry |
1 | 167259 | org.jnode.fs.iso9660.PrimaryVolumeDescriptor: |
1264 | 164009 | org.jnode.fs.jifs.JIFSFile:addStringln |
1264 | 163831 | org.jnode.fs.jifs.JIFSFile:addStringln |
1 | 144638 | org.jnode.fs.jifs.directories.JIFSDpluginJars: |
1 | 136086 | org.jnode.fs.service.def.VirtualDirEntry:addMount |
1 | 133273 | org.jnode.fs.service.def.FileSystemAPIImpl:mkDir |
1 | 127996 | org.jnode.fs.iso9660.ISO9660Volume: |
1 | 126506 | org.jnode.net.ipv4.udp.UDPProtocol: |
2 | 123820 | org.jnode.net.ipv4.config.impl.NetDeviceMonitor:configureDevice |
1 | 121548 | org.jnode.fs.service.def.FileSystemPlugin:registerFileSystem |
- Login to post comments
Thread dump
It also may be of interest to see a thread dump with method counters/percents relative to the thread. Here's the main one for JIFS (there are others, but appear to be much less time). If you View Source for the page it's printed with correct column spacing, but the forums don't appear to have a pre tag for that.
If there's a function of the system that happens in boot and you want to see the thread dump for it, post the method name or package here and I'll search through.
Oh yeah, the numbers in my first post above are only the top 50. If there's a good place to dump all this, I can post a txt and xml version of the whole thing somewhere. Feel like I'm jamming the forums with even this.
-Casey
formatting
I've fixed the formatting for you.
If you select the input format "Full HTML" on submit then the <pre> tag will be usable.
Regards, Levente