Конфигурация JIT HotSpot JVM для задач, интенсивно использующих процессор - PullRequest
0 голосов
/ 23 октября 2019

Я работаю над распределенным решателем на основе Java & Giraph, который требует дорогих вычислений (которые идеально распараллеливаются). Очевидно, с этой точки зрения важно правильно настроить конфигурацию Hotspot, чтобы мы всегда выполняли наиболее эффективный машинный код. Я предполагаю, что -server было бы чем-то начать, но я должен настроить агрегированные значения как CompileThreshold? Кроме того, решатель является итеративным, поэтому задачи повторяются. Я обеспокоен деоптимизацией JVM, которая происходит после того, как определенная рутина больше не используется (по-видимому). Как мне убедиться, что он все еще доступен для следующей итерации? Я предпочел бы сэкономить немного памяти для кода, чем переделывать оптимизации. Кроме того, стоит ли отключать фоновую компиляцию -XX:-BackgroundCompilation?

Ниже значения jstat -printcompilation <PID> 1000 для этого конкретного решателя и следующих параметров JVM:

-XX:+UsePerfData
-server
-d64
-XX:+TieredCompilation
-XX:-BackgroundCompilation

и среднего размера проблемы, котораявызывает достаточно большое количество горячих точек:

Compiled  Size  Type Method
    4640     29    1 java/lang/Throwable fillInStackTrace
    4734    214    1 it/unimi/dsi/fastutil/ints/Int2ObjectOpenHashMap$MapIterator nextEntry
    4824    108    1 edu/agh/iga/adi/giraph/direction/io/data/message/MergeAndEliminateInterimMessageSerializer readMessage
    4951     26    1 java/util/Formatter$FormatSpecifier trailingSign
    5109    717    1 sun/misc/FloatingDecimal$BinaryToASCIIBuffer getChars
    5249     30    1 edu/agh/iga/adi/giraph/core/operations/BackwardsSubstituteInterimOperation$BackwardsSubstituteInterimMessage <init>
    5294     55    1 sun/reflect/GeneratedConstructorAccessor30 newInstance
    5333     86    1 sun/reflect/UnsafeFieldAccessorImpl ensureObj
    5350     10    1 java/util/Collections$UnmodifiableCollection stream
    5386     34    1 java/lang/Integer equals
    5410     14    1 java/util/concurrent/Executors$RunnableAdapter call
    5420     68    1 org/ojalgo/array/Primitive64Array exchange
    5468     10    1 edu/agh/iga/adi/giraph/direction/io/data/message/TranspositionMessageSerializer writeMessage
    5481    604    1 edu/agh/iga/adi/giraph/direction/computation/transposition/TranspositionComputation send
    5488      6    1 java/util/PriorityQueue$Itr <init>
    5496      2    1 sun/management/MappedMXBeanType$BasicMXBeanType toJavaTypeData
    5501     11    1 sun/rmi/transport/Target getImpl
    5510      5    1 sun/management/MemoryManagerImpl getName
    5549    153    1 it/unimi/dsi/fastutil/ints/Int2ObjectOpenHashMap put
    5646   2328    1 edu/agh/iga/adi/giraph/direction/io/data/message/MessageSerializerFacade readMessage
    5669    149    1 edu/agh/iga/adi/giraph/direction/io/data/message/TranspositionMessageSerializer readMessage
    5672     32    1 java/util/Collections unmodifiableMap
    5677    211    1 javax/management/remote/rmi/RMIConnectionImpl doPrivilegedOperation
    5701     42    1 com/sun/jmx/mbeanserver/GetPropertyAction run
    5727      5    1 org/apache/giraph/graph/GraphTaskManager access$100
    5733     95    1 java/util/PriorityQueue offer
    5739     13    1 edu/agh/iga/adi/giraph/direction/computation/IgaComputation$$Lambda$456 apply
    5749     26    1 org/ojalgo/matrix/store/TransformableRegion$OffsetRegion countColumns
    5753     42    1 java/util/PriorityQueue$Itr <init>
    5769      5    1 org/apache/giraph/comm/ServerData getOwnerAggregatorData
    5778    356    1 java/util/Spliterators$IteratorSpliterator tryAdvance
    5814    116    1 edu/agh/iga/adi/giraph/direction/io/data/message/MergeAndEliminateInterimMessageSerializer readMessage
    5855     97    1 sun/misc/FloatingDecimal$BinaryToASCIIBuffer appendTo
    5943     23    1 org/apache/giraph/utils/UnsafeByteArrayOutputStream <init>
    5971     63    1 io/netty/buffer/AbstractByteBuf writableBytes
    5980    484    1 java/io/ObjectInputStream readArray
    5992    231    1 java/util/concurrent/locks/AbstractQueuedSynchronizer fullyRelease
    5995    340    1 java/util/concurrent/FutureTask awaitDone
    6007     30    1 java/util/stream/StreamOpFlag getMask
    6028     49    1 java/util/ArrayList set
    6030     25    1 org/apache/giraph/utils/MemoryUtils totalMemoryMB
    6030     25    1 org/apache/giraph/utils/MemoryUtils totalMemoryMB
    6032    179    1 java/util/AbstractList hashCode
    6061    489    1 org/apache/hadoop/fs/FileSystem$Statistics getThreadStatistics
    6067     62    1 java/util/LinkedHashMap afterNodeInsertion
    6067     62    1 java/util/LinkedHashMap afterNodeInsertion
    6081    287    1 edu/agh/iga/adi/giraph/direction/io/StepVertexOutputFormat$IdWithValueVertexWriter writeVertex
    6085   2122    1 edu/agh/iga/adi/giraph/core/IgaVertex offsetLeft
    6088      6    1 java/security/PermissionCollection <init>
    6093     10    1 java/util/Collections$UnmodifiableList hashCode
    6094     59    1 java/util/HashMap tableSizeFor
    6097    167    1 org/apache/hadoop/mapreduce/lib/output/TextOutputFormat$LineRecordWriter writeObject
    6104    146    1 java/util/WeakHashMap getEntry
    6106     38    1 java/util/AbstractList$Itr <init>
    6174    478    1 java/util/stream/ReferencePipeline forEach
    6219      9    1 org/ojalgo/structure/Factory2D makeZero
    6222    171    1 org/ojalgo/matrix/store/PrimitiveDenseStore <init>
    6225    260    1 java/util/TimSort sort
    6229    136    1 java/util/stream/AbstractPipeline <init>
    6229    136    1 java/util/stream/AbstractPipeline <init>
    6230     87    1 java/util/Arrays sort
    6234      2    1 java/util/stream/ReferencePipeline$StatefulOp opIsStateful
    6236     10    1 edu/agh/iga/adi/giraph/core/setup/InitialisationAccess2D countColumns
    6236     10    1 edu/agh/iga/adi/giraph/core/setup/InitialisationAccess2D countColumns
    6236     10    1 edu/agh/iga/adi/giraph/core/setup/InitialisationAccess2D countColumns
    6239   3108    1 javax/management/ObjectName construct
    6240    328    1 java/io/ObjectInputStream readTypeString
    6243     38    1 java/util/stream/SpinedBuffer capacity
    6250     19    1 org/apache/hadoop/mapreduce/Job isComplete
    6252    391    1 edu/agh/iga/adi/giraph/direction/computation/IgaComputation messagesOf
    6256    306    1 org/apache/hadoop/io/FastByteComparisons$LexicographicalComparerHolder$UnsafeComparer compareTo
    6261     29    1 java/util/stream/Nodes$SpinedNodeBuilder accept
    6262      5    1 edu/agh/iga/adi/giraph/direction/io/data/DataInputAccessStore count
    6262      5    1 edu/agh/iga/adi/giraph/direction/io/data/DataInputAccessStore count
    6266    229    1 java/util/stream/SpinedBuffer ensureCapacity
    6267     32    1 java/util/stream/SpinedBuffer <init>
    6271    210    1 java/util/stream/SortedOps$OfRef opWrapSink
    6287    125    1 edu/agh/iga/adi/giraph/core/problem/phenomena/HeatTransferPhenomena$HeatTransferPhenomenaFactory problemFor
    6287    125    1 edu/agh/iga/adi/giraph/core/problem/phenomena/HeatTransferPhenomena$HeatTransferPhenomenaFactory problemFor
    6287    125    1 edu/agh/iga/adi/giraph/core/problem/phenomena/HeatTransferPhenomena$HeatTransferPhenomenaFactory problemFor
    6287    125    1 edu/agh/iga/adi/giraph/core/problem/phenomena/HeatTransferPhenomena$HeatTransferPhenomenaFactory problemFor
    6287    125    1 edu/agh/iga/adi/giraph/core/problem/phenomena/HeatTransferPhenomena$HeatTransferPhenomenaFactory problemFor
    6298     29    1 edu/agh/iga/adi/giraph/core/setup/Initialisation$InitialisationIgaMessage compareTo
    6301    223    1 java/util/TimSort binarySort
    6301    223    1 java/util/TimSort binarySort
    6301    223    1 java/util/TimSort binarySort
    6301    223    1 java/util/TimSort binarySort
    6301    223    1 java/util/TimSort binarySort
    6301    223    1 java/util/TimSort binarySort
    6301    223    1 java/util/TimSort binarySort
    6302      5    1 java/io/ObjectInputStream$HandleTable size
    6302      5    1 java/io/ObjectInputStream$HandleTable size
    6302      5    1 java/io/ObjectInputStream$HandleTable size
    6303     95    1 javax/management/remote/rmi/RMIConnectionImpl checkNonNull
    6304      8    1 org/apache/hadoop/mapred/Counters <init>
    6307     83    1 javax/management/remote/rmi/RMIConnectionImpl$SetCcl run
    6311      5    1 javax/management/remote/rmi/RMIConnectionImpl access$000
    6311      5    1 javax/management/remote/rmi/RMIConnectionImpl access$000
    6311      5    1 javax/management/remote/rmi/RMIConnectionImpl access$000
    6311      5    1 javax/management/remote/rmi/RMIConnectionImpl access$000
    6312     29    1 org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup getName
    6313    116    1 java/io/ObjectOutputStream$BlockDataOutputStream writeLongs
    6316    119    1 sun/management/ThreadImpl verifyThreadIds
    6317    170    1 java/io/ObjectInputStream$BlockDataInputStream readLongs
    6322   3095    1 java/io/ObjectInputStream readObject0
    6322   3095    1 java/io/ObjectInputStream readObject0
    6322   3095    1 java/io/ObjectInputStream readObject0
    6326     13    1 com/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory$EnumMapping toNonNullOpenValue
    6342     89    1 sun/reflect/GeneratedMethodAccessor22 invoke
    6342     89    1 sun/reflect/GeneratedMethodAccessor22 invoke
    6343      5    1 com/sun/jmx/interceptor/DefaultMBeanServerInterceptor getDefaultDomain
    6343      5    1 com/sun/jmx/interceptor/DefaultMBeanServerInterceptor getDefaultDomain
    6343      5    1 com/sun/jmx/interceptor/DefaultMBeanServerInterceptor getDefaultDomain
    6344     21    1 org/ojalgo/structure/Factory2D makeZero
    6351      5    1 org/apache/giraph/worker/MemoryObserver access$100
    6353    111    1 java/io/ObjectInputStream$HandleTable finish
    6353    111    1 java/io/ObjectInputStream$HandleTable finish
    6353    111    1 java/io/ObjectInputStream$HandleTable finish
    6354      5    1 org/apache/hadoop/mapred/Task access$000
    6355     86    1 sun/reflect/GeneratedMethodAccessor35 invoke
    6355     86    1 sun/reflect/GeneratedMethodAccessor35 invoke
    6355     86    1 sun/reflect/GeneratedMethodAccessor35 invoke
    6356      1    1 java/io/ByteArrayInputStream close
    6356      1    1 java/io/ByteArrayInputStream close
    6357     39    1 sun/rmi/runtime/Log$LoggerLog isLoggable
    6357     39    1 sun/rmi/runtime/Log$LoggerLog isLoggable
    6362    100    1 java/lang/StringBuilder append
    6362    100    1 java/lang/StringBuilder append
    6362    100    1 java/lang/StringBuilder append
    6363    106    1 java/util/ArrayList toArray
    6365     32    1 java/util/Formatter getZero
    6366     36    1 org/apache/hadoop/mapreduce/JobStatus isJobComplete
    6367      6    1 java/security/PermissionCollection setReadOnly
    6368    314    1 java/util/HashMap removeNode
    6368    314    1 java/util/HashMap removeNode

Когда я использую значение 1000 для указанного выше параметра:

Compiled  Size  Type Method
    3947     13    1 it/unimi/dsi/fastutil/ints/Int2ObjectOpenHashMap$MapEntry getValue
    4179     77    1 java/util/Spliterators$IteratorSpliterator tryAdvance
    4256     10    1 java/lang/invoke/LambdaForm$MH linkToTargetMethod
    4362    569    1 sun/misc/FloatingDecimal$BinaryToASCIIBuffer getChars
    4508     73    1 org/ojalgo/matrix/store/TransformableRegion exchangeColumns
    4593    217    1 java/util/Formatter$FormatSpecifier checkGeneral
    4705    110    1 java/util/HashMap$EntryIterator next
    4794    682    1 com/google/common/collect/Iterables isEmpty
    4902     20    1 org/ojalgo/matrix/store/TransformableRegion$RowsRegion countColumns
    5015    148    1 sun/misc/FDBigInteger mult
    5179    429    1 sun/misc/FDBigInteger valueOfPow52
    5255      6    1 edu/agh/iga/adi/giraph/direction/io/data/message/BackwardsSubstituteInterimMessageSerializer readMessage
    5286     70    1 edu/agh/iga/adi/giraph/direction/io/data/message/BackwardsSubstituteInterimMessageSerializer writeMessage
    5327     55    1 sun/reflect/GeneratedConstructorAccessor31 newInstance
    5346     13    1 it/unimi/dsi/fastutil/ints/Int2ObjectOpenHashMap$MapIterator hasNext
    5391    104    1 com/google/common/collect/RegularImmutableBiMap$Inverse get
    5408    648    1 java/net/SocketInputStream read
    5460    403    1 org/ojalgo/structure/Structure1D loopRange
    5636     23    1 org/apache/hadoop/mapred/Task$TaskReporter setProgressFlag
    5726     54    1 org/apache/giraph/partition/GraphPartitionerFactory getPartitionInRange
    5954     16    1 edu/agh/iga/adi/giraph/direction/io/data/DataInputAccessStore <init>
    6136     22    1 java/util/Optional orElseThrow
    6348    233    1 java/util/regex/Pattern matcher
    6502    331    1 java/lang/AbstractStringBuilder append
    6954      5    1 java/util/BitSet wordIndex
    7041      6    1 org/apache/giraph/graph/DefaultVertex voteToHalt
    7070     34    1 org/apache/giraph/utils/UnsafeByteArrayInputStream <init>
    7097     74    1 java/text/DecimalFormatSymbols getInstance
    7122      8    1 java/util/LinkedHashMap$LinkedValueIterator next
    7131    490    1 edu/agh/iga/adi/giraph/direction/CachedDirectionTree branchingHeight
    7167     39    1 java/lang/ref/ReferenceQueue <init>
    7204   1031    1 org/apache/giraph/comm/messages/primitives/IntByteArrayMessageStore addPartitionMessages
    7500     71    1 org/ojalgo/matrix/store/TransformableRegion$TransposedRegion countColumns
    7529    176    1 edu/agh/iga/adi/giraph/direction/io/StepVertexOutputFormat$IdWithValueVertexWriter writeVertex
    7543   4894    1 org/apache/giraph/partition/ByteArrayPartition getVertex
    7556     10    1 java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1 hasNext
    7558     71    1 sun/misc/Launcher$ExtClassLoader getExtClassLoader
    7701      2    1 java/util/LinkedHashMap removeEldestEntry
    7705   1896    1 java/lang/String split
    7711      5    1 org/apache/hadoop/io/Text getBytes
    7789      5    1 edu/agh/iga/adi/giraph/core/Mesh getDofsX
    7813     50    1 com/sun/jmx/mbeanserver/ConvertingMethod fromOpenParameters
    7822      5    1 com/sun/management/GarbageCollectionNotificationInfo getGcCause
    7892     24    1 edu/agh/iga/adi/giraph/core/operations/MergeAndEliminateBranchOperation postConsume
    7947     10    1 java/util/Collections$UnmodifiableCollection stream
    8058    596    1 org/apache/giraph/utils/UnsafeReads readUTF
    8174      2    1 org/apache/giraph/utils/ProgressableUtils$WaitableWithoutResult getResult
    8364     10    1 com/yourkit/probes/Table shouldIgnoreRow
    8399      6    1 java/util/TreeMap$TreeMapSpliterator estimateSize
    8416      5    1 com/sun/management/GarbageCollectionNotificationInfo getGcInfo
    8442     68    1 java/security/AccessControlContext <init>
    8452      2    1 java/net/URLStreamHandler getDefaultPort
    8475     72    1 java/io/DataInputStream readFully
    8486     10    1 edu/agh/iga/adi/giraph/direction/io/data/message/BackwardsSubstituteBranchMessageSerializer writeMessage
    8492    802    1 java/util/concurrent/FutureTask get
    8493      2    1 edu/agh/iga/adi/giraph/core/operations/BackwardsSubstituteBranchOperation postSend
    8494    205    1 java/security/AccessControlContext combine
    8544      5    1 org/apache/giraph/io/superstep_output/SynchronizedSuperstepOutput access$000
    8558    146    1 java/util/WeakHashMap getEntry
    8590    287    1 edu/agh/iga/adi/giraph/direction/io/StepVertexOutputFormat$IdWithValueVertexWriter writeVertex
    8599    463    1 org/apache/giraph/graph/ComputeCallable computePartition
    8603     48    1 org/apache/hadoop/mapreduce/ID equals
    8609     11    1 org/apache/hadoop/mapreduce/ID <init>
    8612     17    1 org/apache/hadoop/mapred/ID <init>
    8617    167    1 org/apache/hadoop/mapreduce/lib/output/TextOutputFormat$LineRecordWriter writeObject
    8619     78    1 org/apache/hadoop/io/Text set
    8667    263    1 org/ojalgo/matrix/store/PrimitiveDenseStore regionByRows
    8734     14    1 java/util/concurrent/atomic/AtomicInteger incrementAndGet
    8792     68    1 org/ojalgo/array/Primitive64Array fill
    8795    611    1 org/apache/hadoop/mapreduce/Job ensureState
    8804     42    1 org/apache/hadoop/mapreduce/JobID equals
    8805     19    1 com/yourkit/runtime/Packet readInt
    8810     74    1 org/apache/hadoop/mapreduce/Job$1 run
    8815     87    1 java/util/Arrays sort
    8831      2    1 java/util/stream/ReferencePipeline$StatefulOp opIsStateful
    8838     47    1 org/apache/hadoop/mapreduce/JobID hashCode
    8842     96    1 java/io/ObjectStreamClass invokeWriteReplace
    8843     75    1 com/yourkit/probes/ReflectionUtil$MemberIdCache getLastMap
    8843     75    1 com/yourkit/probes/ReflectionUtil$MemberIdCache getLastMap
    8843     75    1 com/yourkit/probes/ReflectionUtil$MemberIdCache getLastMap
    8847     38    1 java/util/stream/SpinedBuffer capacity
    8847     38    1 java/util/stream/SpinedBuffer capacity
    8849     66    1 java/lang/StringCoding access$300
    8849     66    1 java/lang/StringCoding access$300
    8849     66    1 java/lang/StringCoding access$300
    8855      5    1 edu/agh/iga/adi/giraph/direction/io/data/DataInputAccessStore count
    8855      5    1 edu/agh/iga/adi/giraph/direction/io/data/DataInputAccessStore count
    8858    229    1 java/util/stream/SpinedBuffer ensureCapacity
    8861     32    1 java/util/stream/SpinedBuffer <init>
    8865     27    1 com/yourkit/runtime/Packet flush
    8886     79    1 edu/agh/iga/adi/giraph/core/problem/phenomena/HeatTransferPhenomena <init>
    8887     74    1 java/util/Arrays rangeCheck
    8887     74    1 java/util/Arrays rangeCheck
    8887     74    1 java/util/Arrays rangeCheck
    8888    175    1 java/util/HashMap <init>
    8906     29    1 edu/agh/iga/adi/giraph/core/setup/Initialisation$InitialisationIgaMessage compareTo
    8907    160    1 java/util/TimSort countRunAndMakeAscending
    8909    223    1 java/util/TimSort binarySort
    8912    179    1 com/yourkit/runtime/Packet readHeader
    8913     95    1 javax/management/remote/rmi/RMIConnectionImpl checkNonNull
    8913     95    1 javax/management/remote/rmi/RMIConnectionImpl checkNonNull
    8917     18    1 sun/management/Util checkAccess
    8923     67    1 java/util/Comparators$NaturalOrderComparator compare
    8926    119    1 sun/management/ThreadImpl verifyThreadIds
    8926    119    1 sun/management/ThreadImpl verifyThreadIds
    8928   3108    1 javax/management/ObjectName construct
    8931    209    1 java/util/concurrent/locks/AbstractQueuedSynchronizer acquireInterruptibly
    8932     11    1 java/security/Permission <init>
    8939     13    1 com/sun/jmx/mbeanserver/DefaultMXBeanMappingFactory$EnumMapping toNonNullOpenValue
    8956      5    1 edu/agh/iga/adi/giraph/direction/io/data/DataInputAccessStore count
    8958    171    1 java/io/ObjectInputStream$HandleTable markDependency
    8958    171    1 java/io/ObjectInputStream$HandleTable markDependency
    8958    171    1 java/io/ObjectInputStream$HandleTable markDependency
    8958    171    1 java/io/ObjectInputStream$HandleTable markDependency
    8963     94    1 sun/reflect/GeneratedMethodAccessor29 invoke
    8963     94    1 sun/reflect/GeneratedMethodAccessor29 invoke
    8966      5    1 com/sun/jmx/interceptor/DefaultMBeanServerInterceptor getDefaultDomain
    8966      5    1 com/sun/jmx/interceptor/DefaultMBeanServerInterceptor getDefaultDomain
    8968      6    1 org/apache/hadoop/mapreduce/counters/Limits <init>
    8969    544    1 javax/management/openmbean/CompositeType isValue
    8971      5    1 org/apache/giraph/worker/MemoryObserver access$100
    8973    111    1 java/io/ObjectInputStream$HandleTable finish
    8976     13    1 com/yourkit/runtime/RequestProcessing composeLong
    8977    887    1 org/ojalgo/matrix/store/PrimitiveDenseStore <init>
    8978      5    1 org/apache/hadoop/mapred/Task access$000
    8980     67    1 java/net/Socket isClosed
    8980     67    1 java/net/Socket isClosed
    8980     67    1 java/net/Socket isClosed
    8981      1    1 java/io/ByteArrayInputStream close
    8981      1    1 java/io/ByteArrayInputStream close
    8981      1    1 java/io/ByteArrayInputStream close
    8982      5    1 java/net/SocketImpl getFileDescriptor
    8985      8    1 java/util/Currency getInstance
    8986      5    1 java/security/PermissionCollection isReadOnly
    8987      5    1 java/net/InetAddress$InetAddressHolder getAddress
    8988     21    1 org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup$FrameworkCounter <init>
    8989    216    1 java/util/concurrent/locks/ReentrantLock lockInterruptibly
    8989    216    1 java/util/concurrent/locks/ReentrantLock lockInterruptibly
    8990      6    1 java/security/PermissionCollection setReadOnly
    8990      6    1 java/security/PermissionCollection setReadOnly
    8994     28    1 java/net/InetAddress <init>
    8998      6    1 org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup$FSCounter setValue
    8998      6    1 org/apache/hadoop/mapreduce/counters/FileSystemCounterGroup$FSCounter setValue
    9001     26    1 sun/nio/cs/UTF_8$Encoder isLegalReplacement
    9002    388    1 java/io/ObjectInputStream readObject
    9005    100    1 org/apache/hadoop/mapreduce/Job isComplete
    9007      8    1 sun/nio/cs/UTF_8$Encoder implReplaceWith
    9008      6    1 org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup$FrameworkCounter setValue
    9008      6    1 org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup$FrameworkCounter setValue
    9008      6    1 org/apache/hadoop/mapreduce/counters/FrameworkCounterGroup$FrameworkCounter setValue
    9011    193    1 org/apache/zookeeper/KeeperException getMessage
    9013    264    1 java/lang/ref/Reference tryHandlePending
    9013    264    1 java/lang/ref/Reference tryHandlePending
    9021     11    1 org/apache/hadoop/mapred/Counters$Group readFields
    9021     11    1 org/apache/hadoop/mapred/Counters$Group readFields
    9021     11    1 org/apache/hadoop/mapred/Counters$Group readFields
    9022    103    1 sun/reflect/UnsafeQualifiedObjectFieldAccessorImpl get
    9023   1222    1 edu/agh/iga/adi/giraph/direction/computation/initialisation/InitialComputation compute
    9062      5    1 edu/agh/iga/adi/giraph/core/Mesh access$300
    9065     45    1 org/apache/hadoop/mapred/Counters$GroupFactory newGenericGroup
    9066    167    1 org/ojalgo/array/operation/MultiplyBoth getPrimitive
    9068    127    1 java/util/Collections shuffle
    9070    153    1 java/util/Collections shuffle
    9071    134    1 java/io/ObjectOutputStream$BlockDataOutputStream writeLong
    9082    218    1 org/ojalgo/matrix/store/TransformableRegion$ReceiverRegion <init>
    9083     23    1 java/io/DataInputStream readByte
    9087     24    1 java/util/concurrent/ThreadPoolExecutor$Worker tryRelease

Пул кода всегда выглядит одинаково и очень мал (хотя решатель и структура, на которой он работает, довольно сложны):

Code Pool

Как видите, независимо от настроек, все это оптимизация уровня 1и код полон потенциально оптимизируемых функций.

Каковы оптимальные настройки для этого варианта использования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...