Я работаю над распределенным решателем на основе 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
Пул кода всегда выглядит одинаково и очень мал (хотя решатель и структура, на которой он работает, довольно сложны):
Как видите, независимо от настроек, все это оптимизация уровня 1и код полон потенциально оптимизируемых функций.
Каковы оптимальные настройки для этого варианта использования?