Examples of ElapsedTimer


Examples of org.apache.jcs.utils.timing.ElapsedTimer

     * @param startingPos the start position in the file
     * @return this is the potential new file end
     */
    private long defragFile( IndexedDiskElementDescriptor[] defragList, long startingPos )
    {
        ElapsedTimer timer = new ElapsedTimer();
        long preFileSize = 0;
        long postFileSize = 0;
        long expectedNextPos = 0;
        try
        {
            preFileSize = this.dataFile.length();
            // find the first gap in the disk and start defragging.
            expectedNextPos = startingPos;
            for ( int i = 0; i < defragList.length; i++ )
            {
                storageLock.writeLock().acquire();
                try
                {
                    if ( expectedNextPos != defragList[i].pos )
                    {
                        dataFile.move( defragList[i], expectedNextPos );
                    }
                    expectedNextPos = defragList[i].pos + IndexedDisk.RECORD_HEADER + defragList[i].len;
                }
                finally
                {
                    storageLock.writeLock().release();
                }
            }

            postFileSize = this.dataFile.length();

            // this is the potential new file end
            return expectedNextPos;
        }
        catch ( IOException e )
        {
            log.error( logCacheName + "Error occurred during defragmentation.", e );
        }
        catch ( InterruptedException e )
        {
            log.error( logCacheName + "Threading problem", e );
        }
        finally
        {
            if ( log.isInfoEnabled() )
            {
                log.info( logCacheName + "Defragmentation took " + timer.getElapsedTimeString()
                    + ". File Size (before=" + preFileSize + ") (after=" + postFileSize + ") (truncating to "
                    + expectedNextPos + ")" );
            }
        }

View Full Code Here

Examples of org.apache.jcs.utils.timing.ElapsedTimer

        int cnt = 0;
        if ( log.isInfoEnabled() )
        {
            log.info( "Propagating events to the new RemoteService." );
        }
        ElapsedTimer timer = new ElapsedTimer();
        while ( !queue.isEmpty() )
        {
            cnt++;

            // for each item, call the appropriate service method
            ZombieEvent event = (ZombieEvent) queue.take();

            if ( event instanceof PutEvent )
            {
                PutEvent putEvent = (PutEvent) event;
                service.update( putEvent.element, event.requesterId );
            }
            else if ( event instanceof RemoveEvent )
            {
                RemoveEvent removeEvent = (RemoveEvent) event;
                service.remove( event.cacheName, removeEvent.key, event.requesterId );
            }
            else if ( event instanceof RemoveAllEvent )
            {
                service.removeAll( event.cacheName, event.requesterId );
            }
        }
        if ( log.isInfoEnabled() )
        {
            log.info( "Propagated " + cnt + " events to the new RemoteService in " + timer.getElapsedTimeString() );
        }
    }
View Full Code Here

Examples of org.apache.jcs.utils.timing.ElapsedTimer

        int runs = 1000;
        int upperKB = 50;

        JCS jcs = JCS.getInstance( ( numPerRun / 2 ) + "aSecond" );

        ElapsedTimer timer = new ElapsedTimer();
        int numToGet = numPerRun * ( runs / 10 );
        for ( int i = 0; i < numToGet; i++ )
        {
            jcs.get( String.valueOf( i ) );
        }
        System.out.println( LOG_DIVIDER );
        System.out.println( "After getting " + numToGet );
        System.out.println( "Elapsed " + timer.getElapsedTimeString() );
        logMemoryUsage();

        jcs.clear();
        Thread.sleep( 3000 );
        System.out.println( LOG_DIVIDER );
        System.out.println( "Start putting" );

        long totalSize = 0;
        int totalPut = 0;

        Random random = new Random( 89 );
        while ( runCount < runs )
        {
            runCount++;
            for ( int i = 0; i < numPerRun; i++ )
            {
                // 1/2 upper to upperKB-4 KB
                int kiloBytes = Math.max( upperKB / 2, random.nextInt( upperKB ) );
                int bytes = ( kiloBytes ) * 1024;
                totalSize += bytes;
                totalPut++;
                DiskTestObject object = new DiskTestObject( new Integer( i ), new byte[bytes] );
                jcs.put( String.valueOf( totalPut ), object );
            }

            // get half of those inserted the previous run
            if ( runCount > 1 )
            {
                for ( int j = ( ( totalPut - numPerRun ) - ( numPerRun / 2 ) ); j < ( totalPut - numPerRun ); j++ )
                {
                    jcs.get( String.valueOf( j ) );
                }
            }

            // remove half of those inserted the previous run
            if ( runCount > 1 )
            {
                for ( int j = ( ( totalPut - numPerRun ) - ( numPerRun / 2 ) ); j < ( totalPut - numPerRun ); j++ )
                {
                    jcs.remove( String.valueOf( j ) );
                }
            }


            Thread.sleep( pauseBetweenRuns );
            if ( runCount % 1 == 0 )
            {
                System.out.println( LOG_DIVIDER );
                System.out.println( "Elapsed " + timer.getElapsedTimeString() );
                System.out.println( "Run count: " + runCount + " Average size: " + ( totalSize / totalPut ) + "\n"
                    + jcs.getStats() );
                logMemoryUsage();
            }
        }
View Full Code Here

Examples of org.apache.jcs.utils.timing.ElapsedTimer

        JCS jcs = JCS.getInstance( region );
        jcs.clear();

        try
        {
            ElapsedTimer timer = new ElapsedTimer();
            System.out.println( "Start: " + measureMemoryUse() );

            // Add items to cache
            for ( int i = 0; i <= items; i++ )
            {
                jcs.put( i + ":key", region + " data " + i );
            }

            System.out.println( jcs.getStats() );
            System.out.println( "--------------------------" );
            System.out.println( "After put: " + measureMemoryUse() );

            Thread.sleep( 5000 );

            System.out.println( jcs.getStats() );
            System.out.println( "--------------------------" );
            System.out.println( "After wait: " + measureMemoryUse() );

            for ( int i = 0; i < 10; i++ )
            {
                SleepUtil.sleepAtLeast( 3000 );
                System.out.println( "--------------------------" );
                System.out.println( "After sleep. " + timer.getElapsedTimeString() + " memory used = " + measureMemoryUse() );
                System.out.println( jcs.getStats() );
            }

            // Test that all items are in cache
            System.out.println( "--------------------------" );
View Full Code Here

Examples of org.apache.jcs.utils.timing.ElapsedTimer

     */
    protected void saveKeys()
    {
        try
        {
            ElapsedTimer timer = new ElapsedTimer();
            int numKeys = keyHash.size();
            if ( log.isInfoEnabled() )
            {
                log.info( logCacheName + "Saving keys to [" + this.keyFile.getAbsolutePath() + "], key count ["
                    + numKeys + "]" );
            }

            keyFile.delete();

            keyFile = new File( rootDirectory, fileName + ".key" );
            FileOutputStream fos = new FileOutputStream( keyFile );
            BufferedOutputStream bos = new BufferedOutputStream( fos, 1024 );
            ObjectOutputStream oos = new ObjectOutputStream( bos );
            try
            {
                // don't need to synchronize, since the underlying collection makes a copy
                Iterator keyIt = keyHash.entrySet().iterator();
                while ( keyIt.hasNext() )
                {
                    Map.Entry entry = (Map.Entry) keyIt.next();
                    BlockDiskElementDescriptor descriptor = new BlockDiskElementDescriptor();
                    descriptor.setKey( (Serializable) entry.getKey() );
                    descriptor.setBlocks( (int[]) entry.getValue() );
                    // stream these out in the loop.
                    oos.writeObject( descriptor );
                }
            }
            finally
            {
                oos.flush();
                oos.close();
            }

            if ( log.isInfoEnabled() )
            {
                log.info( logCacheName + "Finished saving keys. It took " + timer.getElapsedTimeString() + " to store "
                    + numKeys + " keys.  Key file length [" + keyFile.length() + "]" );
            }
        }
        catch ( Exception e )
        {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.