2020 */
2121package com .jpetrak .gate .stringannotation .extendedgazetteer ;
2222
23- import gate .Factory ;
24- import gate .FeatureMap ;
25- import gate .Resource ;
26- import gate .creole .ANNIEConstants ;
27- import gate .creole .AbstractLanguageAnalyser ;
28- import gate .creole .ResourceInstantiationException ;
29- import gate .creole .metadata .CreoleParameter ;
30- import gate .util .BomStrippingInputStreamReader ;
31- import gate .util .GateRuntimeException ;
32- import gate .util .Strings ;
33-
23+ import java .awt .event .ActionEvent ;
3424import java .io .BufferedReader ;
3525import java .io .File ;
3626import java .io .IOException ;
27+ import java .io .InputStreamReader ;
3728import java .io .UnsupportedEncodingException ;
3829import java .lang .management .ManagementFactory ;
3930import java .net .MalformedURLException ;
4031import java .net .URL ;
32+ import java .util .ArrayList ;
4133import java .util .HashMap ;
4234import java .util .Iterator ;
4335import java .util .List ;
44- import java .util .ArrayList ;
4536import java .util .Locale ;
4637import java .util .Map ;
4738import java .util .regex .Pattern ;
39+ import java .util .zip .GZIPInputStream ;
40+
41+ import javax .swing .AbstractAction ;
42+ import javax .swing .Action ;
4843
4944import org .apache .log4j .Logger ;
45+ import org .yaml .snakeyaml .Yaml ;
5046
5147import com .jpetrak .gate .stringannotation .extendedgazetteer .trie .GazStoreTrie3 ;
5248import com .jpetrak .gate .stringannotation .utils .UrlUtils ;
49+
50+ import gate .Factory ;
51+ import gate .FeatureMap ;
5352import gate .GateConstants ;
53+ import gate .Resource ;
54+ import gate .creole .ANNIEConstants ;
55+ import gate .creole .AbstractLanguageAnalyser ;
56+ import gate .creole .ResourceInstantiationException ;
57+ import gate .creole .ResourceReference ;
58+ import gate .creole .metadata .CreoleParameter ;
5459import gate .creole .metadata .Optional ;
5560import gate .gui .ActionsPublisher ;
61+ import gate .util .BomStrippingInputStreamReader ;
5662import gate .util .Files ;
57- import gate .creole .ResourceReference ;
58- import java .awt .event .ActionEvent ;
59- import java .io .InputStreamReader ;
60- import java .util .zip .GZIPInputStream ;
61- import javax .swing .AbstractAction ;
62- import javax .swing .Action ;
63- import static javax .swing .Action .SHORT_DESCRIPTION ;
64-
65- import org .yaml .snakeyaml .Yaml ;
63+ import gate .util .GateRuntimeException ;
64+ import gate .util .Strings ;
6665
6766/**
6867 * Common Base class for all gazetteer implementations. All these PRs need to
@@ -124,6 +123,20 @@ public void setGazetteerFeatureSeparator(String sep) {
124123 }
125124 }
126125
126+ protected Boolean profile ;
127+
128+ @ CreoleParameter (
129+ comment = "If enabled the PR will display information on memory usage etc." ,
130+ defaultValue = "false"
131+ )
132+ public void setProfile (Boolean profile ) {
133+ this .profile = profile ;
134+ }
135+
136+ public Boolean getProfile () {
137+ return profile ;
138+ }
139+
127140 public String getGazetteerFeatureSeparator () {
128141 return gazetteerFeatureSeparator ;
129142 }
@@ -187,17 +200,22 @@ public synchronized void incrementGazStore() throws ResourceInstantiationExcepti
187200 // System.err.println("DEBUG running incrementGazStore");
188201 String uniqueGazStoreKey = genUniqueGazStoreKey ();
189202 logger .info ("Creating gazetteer for " + getConfigFileURL ());
190- System .gc ();
191- long startTime = System .currentTimeMillis ();
192- long before = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
203+
204+ long startTime = 0 , before = 0 ;
205+
206+ if (profile ) {
207+ System .gc ();
208+ startTime = System .currentTimeMillis ();
209+ before = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
210+ }
211+
193212 GazStore gs = loadedGazStores .get (uniqueGazStoreKey );
194213 if (gs != null ) {
195214 // The FSM for this file/parm combination already has been compiled, just
196215 // reuse it for this PR
197216 gazStore = gs ;
198217 gazStore .refcount ++;
199218 logger .info ("Reusing already generated GazStore for " + uniqueGazStoreKey );
200- System .err .println ("Reusing already generated gaz store for " + uniqueGazStoreKey );
201219 } else {
202220 try {
203221 loadData ();
@@ -211,21 +229,30 @@ public synchronized void incrementGazStore() throws ResourceInstantiationExcepti
211229 // System.err.println("DEBUG addeed new gaz store with key " + uniqueGazStoreKey);
212230 logger .info ("New GazStore loaded for " + uniqueGazStoreKey );
213231 }
214- long endTime = System .currentTimeMillis ();
215- System .gc ();
216- long after = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
217- logger .info ("Gazetteer created in (secs): " + ((endTime - startTime ) / 1000.0 ));
218- logger .info ("Heap memory increase (estimate,MB): "
219- + String .format ("%01.3f" , ((after - before ) / (1024.0 * 1024.0 ))));
220- logger .info (gazStore .statsString ());
232+
233+ if (profile ) {
234+ long endTime = System .currentTimeMillis ();
235+ System .gc ();
236+ long after = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
237+ logger .info ("Gazetteer created in (secs): " + ((endTime - startTime ) / 1000.0 ));
238+ logger .info ("Heap memory increase (estimate,MB): "
239+ + String .format ("%01.3f" , ((after - before ) / (1024.0 * 1024.0 ))));
240+ logger .info (gazStore .statsString ());
241+ }
221242 }
222243
223244 public synchronized void replaceGazStore () throws ResourceInstantiationException {
224245 String uniqueGazStoreKey = genUniqueGazStoreKey ();
225246 logger .info ("Replacing gazetteer for " + getConfigFileURL ());
226- System .gc ();
227- long startTime = System .currentTimeMillis ();
228- long before = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
247+
248+ long startTime = 0 , before = 0 ;
249+
250+ if (profile ) {
251+ System .gc ();
252+ startTime = System .currentTimeMillis ();
253+ before = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
254+ }
255+
229256 try {
230257 loadData ();
231258 gazStore .compact ();
@@ -235,13 +262,15 @@ public synchronized void replaceGazStore() throws ResourceInstantiationException
235262 loadedGazStores .put (uniqueGazStoreKey , gazStore );
236263 logger .info ("GazStore replaced for " + uniqueGazStoreKey );
237264
238- long endTime = System .currentTimeMillis ();
239- System .gc ();
240- long after = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
241- logger .info ("Gazetteer created in (secs): " + ((endTime - startTime ) / 1000.0 ));
242- logger .info ("Heap memory increase (estimate,MB): "
243- + String .format ("%01.3f" , ((after - before ) / (1024.0 * 1024.0 ))));
244- logger .info (gazStore .statsString ());
265+ if (profile ) {
266+ long endTime = System .currentTimeMillis ();
267+ System .gc ();
268+ long after = ManagementFactory .getMemoryMXBean ().getHeapMemoryUsage ().getUsed ();
269+ logger .info ("Gazetteer created in (secs): " + ((endTime - startTime ) / 1000.0 ));
270+ logger .info ("Heap memory increase (estimate,MB): "
271+ + String .format ("%01.3f" , ((after - before ) / (1024.0 * 1024.0 ))));
272+ logger .info (gazStore .statsString ());
273+ }
245274 }
246275
247276 public synchronized void decrementGazStore () {
0 commit comments