Guest User

Untitled

a guest
Jul 16th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. import net.imglib2.img.basictypeaccess.ByteAccess;
  2. import net.imglib2.img.basictypeaccess.array.ByteArray;
  3.  
  4. public class ByteAccessCopyTest
  5. {
  6.  
  7. public static void main( final String args[] )
  8. {
  9. final int iterations = 100000;
  10.  
  11. final int size = 1000000;
  12.  
  13. final ByteArray source = new ByteArray( size );
  14. final ByteArray target = new ByteArray( size );
  15.  
  16. for ( int i = 0; i < iterations; ++i )
  17. {
  18. copy( source, target, size );
  19. }
  20.  
  21. final long tStartAccessCopy = System.nanoTime();
  22. for ( int i = 0; i < iterations; ++i )
  23. {
  24. copy( source, target, size );
  25. }
  26. final long tStopAccessCopy = System.nanoTime();
  27. final long tAccessCopy = tStopAccessCopy - tStartAccessCopy;
  28.  
  29. for ( int i = 0; i < iterations; ++i )
  30. {
  31. System.arraycopy( source.getCurrentStorageArray(), 0, target.getCurrentStorageArray(), 0, size );
  32. }
  33.  
  34. final long tStartArraycopy = System.nanoTime();
  35. final byte[] sourceArr = source.getCurrentStorageArray();
  36. final byte[] targetArr = target.getCurrentStorageArray();
  37. for ( int i = 0; i < iterations; ++i )
  38. {
  39. System.arraycopy( sourceArr, 0, targetArr, 0, size );
  40. }
  41. final long tStopArraycopy = System.nanoTime();
  42. final long tArraycopy = tStopArraycopy - tStartArraycopy;
  43.  
  44. System.out.println( "access copy: " + tAccessCopy * 1.0 / iterations );
  45. System.out.println( "array copy: " + tArraycopy * 1.0 / iterations );
  46.  
  47. }
  48.  
  49. private static final void copy( final ByteAccess source, final ByteAccess target, final int size )
  50. {
  51. for ( int i = 0; i < size; ++i )
  52. {
  53. target.setValue( i, source.getValue( i ) );
  54. }
  55. }
  56.  
  57. }
Add Comment
Please, Sign In to add comment