Use a SortableArrayList instead of sorting a regular array list to avoid
creating craploads of objects every time an interval expires. git-svn-id: https://samskivert.googlecode.com/svn/trunk@584 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: IntervalManager.java,v 1.4 2001/09/15 17:22:11 mdb Exp $
|
// $Id: IntervalManager.java,v 1.5 2002/02/19 03:39:41 mdb Exp $
|
||||||
//
|
//
|
||||||
// samskivert library - useful routines for java programs
|
// samskivert library - useful routines for java programs
|
||||||
// Copyright (C) 2001 Michael Bayne
|
// Copyright (C) 2001 Michael Bayne
|
||||||
@@ -20,8 +20,6 @@
|
|||||||
|
|
||||||
package com.samskivert.util;
|
package com.samskivert.util;
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.Collections;
|
|
||||||
import com.samskivert.Log;
|
import com.samskivert.Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -93,7 +91,7 @@ public class IntervalManager extends Thread
|
|||||||
IntervalItem item = new IntervalItem(i, delay, arg, recur);
|
IntervalItem item = new IntervalItem(i, delay, arg, recur);
|
||||||
_hash.put(item.id, item);
|
_hash.put(item.id, item);
|
||||||
_schedule.add(item);
|
_schedule.add(item);
|
||||||
Collections.sort(_schedule);
|
_schedule.sort();
|
||||||
if (item.endtime < _nextwake) {
|
if (item.endtime < _nextwake) {
|
||||||
_mgr.notify();
|
_mgr.notify();
|
||||||
}
|
}
|
||||||
@@ -191,7 +189,7 @@ public class IntervalManager extends Thread
|
|||||||
// since we're definitionally not sleeping, we can just
|
// since we're definitionally not sleeping, we can just
|
||||||
// insert into the queue without checking wait times..
|
// insert into the queue without checking wait times..
|
||||||
_schedule.add(item);
|
_schedule.add(item);
|
||||||
Collections.sort(_schedule);
|
_schedule.sort();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// otherwise, get rid of this interval altogether
|
// otherwise, get rid of this interval altogether
|
||||||
@@ -245,7 +243,8 @@ public class IntervalManager extends Thread
|
|||||||
// If we someday find that we have a lot of intervaleds, we may want
|
// If we someday find that we have a lot of intervaleds, we may want
|
||||||
// to rewrite this such that we can add and remove intervaleds much
|
// to rewrite this such that we can add and remove intervaleds much
|
||||||
// faster.
|
// faster.
|
||||||
protected static ArrayList _schedule = new ArrayList();
|
protected static SortableArrayList _schedule = new SortableArrayList();
|
||||||
|
|
||||||
protected static HashIntMap _hash = new HashIntMap();
|
protected static HashIntMap _hash = new HashIntMap();
|
||||||
protected static long _nextwake = Long.MAX_VALUE;
|
protected static long _nextwake = Long.MAX_VALUE;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user