This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Summary: | Simplify MasterFS, do not delegate on other embedded FS | ||
---|---|---|---|
Product: | platform | Reporter: | rmatous <rmatous> |
Component: | Filesystems | Assignee: | rmatous <rmatous> |
Status: | RESOLVED FIXED | ||
Severity: | blocker | CC: | anebuzelsky, jtulach, kirillkh, mmirilovic, pflaska, tpavek |
Priority: | P2 | Keywords: | PERFORMANCE, PLAN |
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | TASK | Exception Reporter: |
Description
rmatous
2007-12-06 08:43:56 UTC
Expected gain - memory, performance: - <= 50 % instances of FO in memory at any time - FO is instantiated without need to instantiate all its parents forming the whole path, which means there is no need to touch(stat) all such files when new FO is instantiated (even more whenever the file is taken from cache of alive FOs) - less FO in memory => faster refresh - for any 1..n direct/indirect childs of folder "A" is true, that the String "A" is kept in memory just 1..2 times created branch, currently containing inception impl., which I consider sufficient for analysing performance gain: Tag: masterfs_novcs User: rmatous Date: 2007/12/05 11:10:31 Guys from perf.team - wouldn't you like to spend a little time on perf.analyse to confirm or reject my expectations? Thanks. I take care of it. First of all, I'll do preliminary evaluation. I'll try to make: i) summary of file object instances in several basic scenarios. ii) summary of I/O access in defined use-cases. iii) compare the results for the trunk build and masterfs_novcs branch. It doesn't answer the exact gain, but if i) and ii) confirm that there are fewer number of instances, we can expect improvement reallyl important. Then, we have to try to measure exact values to correctly quantify the time reduction in several use-cases. I used a scenario with several projects opened, located on network disk and the exactly same scenario in trunk build and masterfs_nocvs branch. Here are some preliminary results (from refresh-after-window-activated): trunk time 4288ms, folder instances 2320, FileObj instances 4688 masterfs_novcs time 2687ms, folder instances 1500, FileObj instances 2236 Branch results makes 62% total time consumption in relation to trunk (100%). This preliminary results show really huge improvement and are based on results from profiler. I'll make another testing later to ensure that results are correct. Almost 40% on refresh, glad to hear about first prove of perf.enhanc., Pavel. Refresh isn't hopefully the only scenario where we can benefit from it. Moreover performance isn't the only aspect why to go this way. /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/Deadlock54741.java,v <-- Deadlock54741.java new revision: delete; previous revision: 1.4 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/ResourcePathTest.java,v <-- ResourcePathTest.java new revision: delete; previous revision: 1.3 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/CacheTest.java,v <-- CacheTest.java new revision: delete; previous revision: 1.6 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemWithExtensionsTest.java,v <-- MasterFileSystemWithExtensionsTest.java new revision: delete; previous revision: 1.5 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileObjectTestHid.java,v <-- MasterFileObjectTestHid.java new revision: delete; previous revision: 1.41 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemOnTopOfLocalFSTest.java,v <-- MasterFileSystemOnTopOfLocalFSTest.java new revision: delete; previous revision: 1.3 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterFileSystemTest.java,v <-- MasterFileSystemTest.java new revision: delete; previous revision: 1.11 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/Deadlock73332.java,v <-- Deadlock73332.java new revision: delete; previous revision: 1.3 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/MasterURLMapperTest.java,v <-- MasterURLMapperTest.java new revision: delete; previous revision: 1.3 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/Delegate.java,v <-- Delegate.java new revision: delete; previous revision: 1.28 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MountTable.java,v <-- MountTable.java new revision: delete; previous revision: 1.22 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/ProviderCall.java,v <-- ProviderCall.java new revision: delete; previous revision: 1.7 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/Cache.java,v <-- Cache.java new revision: delete; previous revision: 1.10 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/Utils.java,v <-- Utils.java new revision: delete; previous revision: 1.6 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterURLMapper.java,v <-- MasterURLMapper.java new revision: delete; previous revision: 1.19 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/SyncSection.java,v <-- SyncSection.java new revision: delete; previous revision: 1.3 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/BasedOnResourcePath.java,v <-- BasedOnResourcePath.java new revision: delete; previous revision: 1.5 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/ResourcePath.java,v <-- ResourcePath.java new revision: delete; previous revision: 1.13 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/InternalMountSupport.java,v <-- InternalMountSupport.java new revision: delete; previous revision: 1.3 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileObject.java,v <-- MasterFileObject.java new revision: delete; previous revision: 1.67 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/SpecialDelegates.java,v <-- SpecialDelegates.java new revision: delete; previous revision: 1.18 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/MasterFileSystem.java,v <-- MasterFileSystem.java new revision: delete; previous revision: 1.26 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/APIAccess.java,v <-- APIAccess.java new revision: delete; previous revision: 1.5 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/AnnotationProvider.java,v <-- AnnotationProvider.java new revision: 1.7; previous revision: 1.6 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/AutoMountProvider.java,v <-- AutoMountProvider.java new revision: delete; previous revision: 1.4 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/FileSystemProvider.java,v <-- FileSystemProvider.java new revision: delete; previous revision: 1.3 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/providers/MountSupport.java,v <-- MountSupport.java new revision: delete; previous revision: 1.4 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/utils/FileInfo.java,v <-- FileInfo.java new revision: 1.16; previous revision: 1.15 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystemWithExtensionsTest.java,v <-- FileBasedFileSystemWithExtensionsTest.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystem2Test.java,v <-- FileBasedFileSystem2Test.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/BaseFileObjectTestHid.java,v <-- BaseFileObjectTestHid.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/Deadlock54741.java,v <-- Deadlock54741.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/Deadlock73332.java,v <-- Deadlock73332.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystemTest.java,v <-- FileBasedFileSystemTest.java new revision: 1.3; previous revision: 1.2 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedURLMapperTest.java,v <-- FileBasedURLMapperTest.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/WriteLockFactory.java,v <-- WriteLockFactory.java new revision: delete; previous revision: 1.7 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/BaseFileObj.java,v <-- BaseFileObj.java new revision: 1.35; previous revision: 1.34 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/WriteLock.java,v <-- WriteLock.java new revision: delete; previous revision: 1.17 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObj.java,v <-- FileObj.java new revision: 1.26; previous revision: 1.25 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/LockForFile.java,v <-- LockForFile.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObj.java,v <-- FolderObj.java new revision: 1.27; previous revision: 1.26 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObjectFactory.java,v <-- FileObjectFactory.java new revision: 1.20; previous revision: 1.19 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/RootObj.java,v <-- RootObj.java new revision: 1.6; previous revision: 1.5 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FolderObjTest.java,v <-- FolderObjTest.java new revision: 1.25; previous revision: 1.24 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/WriteLockTest.java,v <-- WriteLockTest.java new revision: delete; previous revision: 1.7 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/StatFiles.java,v <-- StatFiles.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/FileObjectFactoryTest.java,v <-- FileObjectFactoryTest.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/StatFilesTest.java,v <-- StatFilesTest.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/filebasedfs/fileobjects/LockForFileTest.java,v <-- LockForFileTest.java new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/nbproject/project.properties,v <-- project.properties new revision: 1.17; previous revision: 1.16 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/children/ChildrenSupport.java,v <-- ChildrenSupport.java new revision: 1.18; previous revision: 1.17 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedURLMapper.java,v <-- FileBasedURLMapper.java new revision: 1.7; previous revision: 1.6 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/FileBasedFileSystem.java,v <-- FileBasedFileSystem.java new revision: 1.17; previous revision: 1.16 /cvs/openide/masterfs/test/unit/src/org/netbeans/modules/masterfs/providers/ProvidedExtensionsTest.java,v <-- ProvidedExtensionsTest.java new revision: 1.11; previous revision: 1.10 /cvs/openide/masterfs/src/META-INF/services/org.openide.filesystems.URLMapper,v <-- org.openide.filesystems.URLMapper new revision: 1.2; previous revision: 1.1 /cvs/openide/masterfs/src/org/netbeans/modules/masterfs/filebasedfs/naming/NamingFactory.java,v <-- NamingFactory.java new revision: 1.16; previous revision: 1.15 |