mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-03 22:35:43 +02:00
Added cumulative timer to SouceIndexer/DOMIndexer.
Purge any existing jobs from job queue on indexer change event. Put in an indexer change nofication event that the IndexManager sends to the newly selected indexer to allow it to react to being selected.
This commit is contained in:
parent
1dbadaeb96
commit
219aa7056b
10 changed files with 69 additions and 5 deletions
|
@ -1,4 +1,11 @@
|
|||
2005-03-28 Bogdan Gheorgh
|
||||
2005-03-29 Bogdan Gheorghe
|
||||
|
||||
Added cumulative timer to SouceIndexer/DOMIndexer.
|
||||
Purge any existing jobs from job queue on indexer change event.
|
||||
Put in an indexer change nofication event that the IndexManager sends to the
|
||||
newly selected indexer to allow it to react to being selected.
|
||||
|
||||
2005-03-28 Bogdan Gheorghe
|
||||
|
||||
NPE Fix for CTagsConsoleParser
|
||||
|
||||
|
|
|
@ -94,6 +94,14 @@ public interface ICDTIndexer extends IIndexer {
|
|||
* @param idlingTime
|
||||
*/
|
||||
public void notifyIdle(long idlingTime);
|
||||
|
||||
/**
|
||||
* Called by the index manager when a project has switched indexers to this
|
||||
* type of indexer - can be used by the indexer to schedule initial jobs
|
||||
* @param project - the project that has changed indexers
|
||||
*/
|
||||
public void notifyIndexerChange(IProject project);
|
||||
|
||||
|
||||
/**
|
||||
* Returns if this indexer is enabled
|
||||
|
|
|
@ -122,6 +122,7 @@ class CTagsIndexAll extends CTagsIndexRequest {
|
|||
if (AbstractIndexer.TIMING){
|
||||
cTagsEndTime = System.currentTimeMillis();
|
||||
System.out.println("CTags Run: " + (cTagsEndTime - startTime)); //$NON-NLS-1$
|
||||
System.out.flush();
|
||||
}
|
||||
|
||||
if (success) {
|
||||
|
@ -137,6 +138,7 @@ class CTagsIndexAll extends CTagsIndexRequest {
|
|||
endTime = System.currentTimeMillis();
|
||||
System.out.println("CTags Encoding Time: " + (endTime - cTagsEndTime)); //$NON-NLS-1$
|
||||
System.out.println("CTagsIndexer Total Time: " + (endTime - startTime)); //$NON-NLS-1$
|
||||
System.out.flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,6 @@ public class CTagsIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
|
||||
private HashSet jobSet = null;
|
||||
|
||||
|
||||
public CTagsIndexer(){
|
||||
this.indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
|
||||
this.indexStorage = (CIndexStorage) indexManager.getIndexStorageForIndexer(this);
|
||||
|
@ -318,6 +317,13 @@ public class CTagsIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
public IIndexStorage getIndexStorage() {
|
||||
return indexStorage;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.index.ICDTIndexer#notifyIndexerChange(org.eclipse.core.resources.IProject)
|
||||
*/
|
||||
public void notifyIndexerChange(IProject project) {
|
||||
this.indexAll(project);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -112,6 +112,7 @@ public class CTagsIndexerRunner extends AbstractIndexer {
|
|||
|
||||
if (AbstractIndexer.TIMING){
|
||||
System.out.println("CTagsIndexer Total Time: " + (System.currentTimeMillis() - startTime)); //$NON-NLS-1$
|
||||
System.out.flush();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -112,7 +112,12 @@ public class DOMSourceIndexerRunner extends AbstractIndexer {
|
|||
endTime = System.currentTimeMillis();
|
||||
System.out.println("DOM Indexer - Total Parse Time for " + resourceFile.getName() + ": " + (parseTime - startTime)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
System.out.println("DOM Indexer - Total Visit Time for " + resourceFile.getName() + ": " + (endTime - parseTime)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
System.out.println("DOM Indexer - Total Index Time for " + resourceFile.getName() + ": " + (endTime - startTime)); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
long currentTime = endTime - startTime;
|
||||
System.out.println("DOM Indexer - Total Index Time for " + resourceFile.getName() + ": " + currentTime); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
long tempTotaltime = indexer.getTotalIndexTime() + currentTime;
|
||||
indexer.setTotalIndexTime(tempTotaltime);
|
||||
System.out.println("DOM Indexer - Overall Index Time: " + tempTotaltime); //$NON-NLS-1$
|
||||
System.out.flush();
|
||||
}
|
||||
if (AbstractIndexer.VERBOSE){
|
||||
AbstractIndexer.verbose("DOM AST TRAVERSAL FINISHED " + resourceFile.getName().toString()); //$NON-NLS-1$
|
||||
|
|
|
@ -61,6 +61,10 @@ public class IndexAllProject extends IndexRequest {
|
|||
if (monitor == null) return true; // index got deleted since acquired
|
||||
|
||||
try {
|
||||
if (AbstractIndexer.TIMING)
|
||||
//reset the total index timer
|
||||
indexer.setTotalIndexTime(0);
|
||||
|
||||
monitor.enterRead(); // ask permission to read
|
||||
saveIfNecessary(index, monitor);
|
||||
|
||||
|
|
|
@ -87,12 +87,13 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
|
||||
|
||||
private CIndexStorage indexStorage = null;
|
||||
public ReadWriteMonitor storageMonitor = null;
|
||||
protected ReadWriteMonitor storageMonitor = null;
|
||||
protected IndexManager indexManager = null;
|
||||
|
||||
protected HashSet jobSet = null;
|
||||
private boolean indexEnabled = false;
|
||||
|
||||
protected long totalIndexTime = 0;
|
||||
|
||||
public SourceIndexer(){
|
||||
this.indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
|
||||
|
@ -549,6 +550,7 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
storageMonitor.exitWrite();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param path
|
||||
|
@ -638,4 +640,23 @@ public class SourceIndexer extends AbstractCExtension implements ICDTIndexer {
|
|||
//storageMonitor.exitWrite();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @return Returns the totalIndexTime.
|
||||
*/
|
||||
public long getTotalIndexTime() {
|
||||
return totalIndexTime;
|
||||
}
|
||||
/**
|
||||
* @param totalIndexTime The totalIndexTime to set.
|
||||
*/
|
||||
public void setTotalIndexTime(long totalIndexTime) {
|
||||
this.totalIndexTime = totalIndexTime;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.index.ICDTIndexer#notifyIndexerChange()
|
||||
*/
|
||||
public void notifyIndexerChange(IProject project) {
|
||||
this.indexAll(project);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,7 +120,12 @@ public class SourceIndexerRunner extends AbstractIndexer {
|
|||
boolean retVal = parser.parse();
|
||||
|
||||
if (AbstractIndexer.TIMING){
|
||||
System.out.println("Source Indexer - Total Index Time: " + (System.currentTimeMillis() - startTime)); //$NON-NLS-1$
|
||||
long currentTime = System.currentTimeMillis() - startTime;
|
||||
System.out.println("Source Indexer - Index Time for " + resourceFile.getName() + ": " + currentTime + " ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
|
||||
long tempTotaltime = indexer.getTotalIndexTime() + currentTime;
|
||||
indexer.setTotalIndexTime(tempTotaltime);
|
||||
System.out.println("Source Indexer - Total Index Time: " + tempTotaltime + " ms"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
}
|
||||
|
||||
if (AbstractIndexer.VERBOSE){
|
||||
|
|
|
@ -333,9 +333,14 @@ public class IndexManager extends JobManager{
|
|||
public void indexerChangeNotification(IProject project) {
|
||||
monitor.enterWrite();
|
||||
try{
|
||||
//Get rid of any jobs scheduled by the old indexer
|
||||
this.discardJobs(project.getName());
|
||||
//Purge the old indexer from the indexer map
|
||||
Object e = indexerMap.remove(project);
|
||||
} finally {
|
||||
monitor.exitWrite();
|
||||
ICDTIndexer indexer = this.getIndexerForProject(project);
|
||||
indexer.notifyIndexerChange(project);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue