Files
sdrtrunk/src/main/java/io/github/dsheirer/gui/ChannelMemoryLogger.java
Denny 9316599dec Updates pull request from Roman Tsypuk to convert the build system from
ant to gradle.  Removes linux and windows application launch scripts and
produces an executable jar with all resources included.
2017-12-17 07:28:06 -05:00

86 lines
2.1 KiB
Java

package io.github.dsheirer.gui;
import io.github.dsheirer.controller.channel.Channel.ChannelType;
import io.github.dsheirer.controller.channel.ChannelEvent;
import io.github.dsheirer.controller.channel.ChannelEventListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.NumberFormat;
public class ChannelMemoryLogger implements Runnable, ChannelEventListener
{
private final static Logger mLog = LoggerFactory.getLogger( ChannelMemoryLogger.class );
public int mChannelCount;
public int mChannelProcessingCount;
public int mTrafficChannelCount;
@Override
public void run()
{
final Runtime runtime = Runtime.getRuntime();
final NumberFormat format = NumberFormat.getInstance();
StringBuilder sb = new StringBuilder();
sb.append( "CHAN TOT:" + mChannelCount );
sb.append( " TRFC:" + mTrafficChannelCount );
sb.append( " PROC:" + mChannelProcessingCount );
long maxMemory = runtime.maxMemory();
long allocatedMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
sb.append(" MEM FREE: " + format.format(freeMemory / 1024) );
sb.append(" ALLOC: " + format.format(allocatedMemory / 1024) );
sb.append(" MAX: " + format.format(maxMemory / 1024) );
sb.append(" TOTAL: " + format.format((freeMemory + (maxMemory - allocatedMemory)) / 1024) );
mLog.debug( sb.toString() );
}
@Override
public void channelChanged( ChannelEvent event )
{
switch( event.getEvent() )
{
case NOTIFICATION_ADD:
if( event.getChannel().getChannelType() == ChannelType.TRAFFIC )
{
mTrafficChannelCount++;
}
else
{
mChannelCount++;
}
break;
case NOTIFICATION_DELETE:
if( event.getChannel().getChannelType() == ChannelType.TRAFFIC )
{
mTrafficChannelCount--;
}
else
{
mChannelCount--;
}
break;
case REQUEST_DISABLE:
break;
case REQUEST_ENABLE:
break;
case NOTIFICATION_PROCESSING_START:
mChannelProcessingCount++;
break;
case NOTIFICATION_PROCESSING_STOP:
mChannelProcessingCount--;
break;
case NOTIFICATION_STATE_RESET:
break;
default:
break;
}
}
}