mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
[208071] (performance) Traditional Memory Rendering: unnecessary populateCache
This commit is contained in:
parent
6261ce70e5
commit
5d2e5b52e0
1 changed files with 33 additions and 15 deletions
|
@ -636,6 +636,26 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
||||||
BigInteger startAddress;
|
BigInteger startAddress;
|
||||||
|
|
||||||
BigInteger endAddress;
|
BigInteger endAddress;
|
||||||
|
|
||||||
|
public AddressPair(BigInteger start, BigInteger end)
|
||||||
|
{
|
||||||
|
startAddress = start;
|
||||||
|
endAddress = end;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if(obj == null)
|
||||||
|
return false;
|
||||||
|
if(obj instanceof AddressPair)
|
||||||
|
{
|
||||||
|
return ((AddressPair) obj).startAddress.equals(startAddress)
|
||||||
|
&& ((AddressPair) obj).endAddress.equals(endAddress);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class MemoryUnit
|
class MemoryUnit
|
||||||
|
@ -670,6 +690,8 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
||||||
|
|
||||||
private boolean fDisposed = false;
|
private boolean fDisposed = false;
|
||||||
|
|
||||||
|
private Object fLastQueued = null;
|
||||||
|
|
||||||
private Vector fQueue = new Vector();
|
private Vector fQueue = new Vector();
|
||||||
|
|
||||||
protected MemoryUnit fCache = null;
|
protected MemoryUnit fCache = null;
|
||||||
|
@ -714,29 +736,25 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void queueRequest(BigInteger startAddress, BigInteger endAddress)
|
private void queueRequest(BigInteger startAddress, BigInteger endAddress)
|
||||||
{
|
{
|
||||||
AddressPair pair = new AddressPair();
|
AddressPair pair = new AddressPair(startAddress, endAddress);
|
||||||
pair.startAddress = startAddress;
|
if(!pair.equals(fLastQueued))
|
||||||
pair.endAddress = endAddress;
|
queue(pair);
|
||||||
synchronized(fQueue)
|
|
||||||
{
|
|
||||||
fQueue.addElement(pair);
|
|
||||||
}
|
|
||||||
synchronized(this)
|
|
||||||
{
|
|
||||||
this.notify();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void queueRequestArchiveDeltas()
|
private void queueRequestArchiveDeltas()
|
||||||
{
|
{
|
||||||
ArchiveDeltas archive = new ArchiveDeltas();
|
ArchiveDeltas archive = new ArchiveDeltas();
|
||||||
|
queue(archive);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void queue(Object element)
|
||||||
|
{
|
||||||
synchronized(fQueue)
|
synchronized(fQueue)
|
||||||
{
|
{
|
||||||
fQueue.addElement(archive);
|
fQueue.addElement(element);
|
||||||
|
fLastQueued = element;
|
||||||
}
|
}
|
||||||
synchronized(this)
|
synchronized(this)
|
||||||
{
|
{
|
||||||
|
@ -777,7 +795,7 @@ public class Rendering extends Composite implements IDebugEventSetListener
|
||||||
}
|
}
|
||||||
else if(pair != null)
|
else if(pair != null)
|
||||||
{
|
{
|
||||||
populateCache(pair.startAddress, pair.endAddress);
|
populateCache(pair.startAddress, pair.endAddress);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue