1
0
Fork 0
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:
Bogdan Gheorghe 2005-03-29 14:28:29 +00:00
parent 1dbadaeb96
commit 219aa7056b
10 changed files with 69 additions and 5 deletions

View file

@ -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

View file

@ -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

View file

@ -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();
}
}

View file

@ -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);
}

View file

@ -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();
}
}

View file

@ -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$

View file

@ -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);

View file

@ -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);
}
}

View file

@ -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){

View file

@ -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);
}
}
}