Fuel Slow?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Fuel Slow?

Sean P. DeNigris
Administrator
I'm serializing about 20MB of data with Fuel and it takes about 45 seconds. Is that normal? Can anything be done to speed things up?

Thanks!
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Fuel Slow?

Mariano Martinez Peck


On Tue, Dec 8, 2015 at 7:42 PM, Sean P. DeNigris <[hidden email]> wrote:
I'm serializing about 20MB of data with Fuel and it takes about 45 seconds.
Is that normal?

No, it's not.
 
Can anything be done to speed things up?


Can I reproduce it? If true, tell me exactly how (if you give me the image and tell me which VM you used, even better).
Which stream are using? 
Did you profile it? 

 
Thanks!



-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Fuel-Slow-tp4866161.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.




--
Reply | Threaded
Open this post in threaded view
|

Re: Fuel Slow?

Sean P. DeNigris
Administrator
Mariano Martinez Peck wrote
> Is that normal?
No, it's not.
Oh good!

Mariano Martinez Peck wrote
Can I reproduce it? If true, tell me exactly how (if you give me the image
and tell me which VM you used, even better).
It happens consistently when I serialize via:
  FLSerializer serialize: anObject toFileNamed: aFileReference fullName.
I can send you the image if necessary. I'll PM you if we can't figure it out.

Mariano Martinez Peck wrote
Which stream are using?
Not sure. I evaluated the above line in default Pharo 4.0. Does that answer it?

Mariano Martinez Peck wrote
Did you profile it?
 - 41036 tallies, 41165 msec.

**Tree**
--------------------------------
Process: (40s) Morphic UI Process: nil
--------------------------------
90.0% {37035ms} FLSerialization>>run
  78.1% {32149ms} FLSerialization>>instancesStep
    |75.4% {31038ms} FLPositive16SmallIntegerCluster(FLPrimitiveCluster)>>registerIndexesOn:
    |  |65.4% {26932ms} OrderedCollection(Collection)>>asIdentitySet
    |  |  |65.4% {26932ms} IdentitySet(Collection)>>addAll:
    |  |  |  64.2% {26438ms} IdentitySet(Set)>>add:
    |  |  |    |63.7% {26217ms} IdentitySet>>scanFor:
    |  |  |    |  63.5% {26133ms} primitives
    |  |  |  1.1% {444ms} primitives
    |  |10.0% {4106ms} FLPositive16SmallIntegerCluster(FLIteratingCluster)>>registerIndexesOn:
    |  |  5.6% {2309ms} IdentitySet(Set)>>do:
    |  |  4.2% {1720ms} FLLargeIdentityDictionary>>at:put:
    |  |    4.2% {1716ms} primitives
    |1.7% {706ms} FLVariableObjectCluster(FLIteratingCluster)>>registerIndexesOn:
    |  1.6% {679ms} FLLargeIdentityDictionary>>at:put:
  11.9% {4884ms} FLSerialization>>referencesStep
    11.0% {4546ms} FLDictionaryCollectionCluster(FLAbstractCollectionCluster)>>serializeReferencesStepWith:
      11.0% {4537ms} FLDictionaryCollectionCluster>>serializeReferencesOf:with:
        8.2% {3383ms} FLEncoder>>encodeReferenceTo:
          |6.9% {2846ms} FLLargeIdentityDictionary>>at:ifAbsent:
          |  |6.9% {2832ms} primitives
          |1.3% {525ms} FLIndexStream>>nextIndexPut:
        2.3% {951ms} OrderedCollection(SequenceableCollection)>>allButFirst
          2.3% {951ms} OrderedCollection(SequenceableCollection)>>allButFirst:
            2.3% {946ms} OrderedCollection>>copyFrom:to:
              2.3% {946ms} OrderedCollection>>postCopyFrom:to:
                2.3% {935ms} primitives
8.8% {3641ms} FLAnalysis>>run
  7.7% {3154ms} FLAnalysis>>mapAndTrace:
    |7.6% {3130ms} FLLightGlobalMapper>>mapAndTrace:
    |  7.1% {2925ms} FLLightGeneralMapper>>mapAndTrace:
    |    3.6% {1467ms} Dictionary>>fuelAccept:
    |      |3.6% {1467ms} FLLightGeneralMapper>>visitDictionary:
    |      |  3.6% {1467ms} FLLightGeneralMapper(FLMapper)>>mapAndTraceByObjectClass:to:
    |      |    3.4% {1411ms} FLDictionaryCollectionCluster(FLIteratingCluster)>>add:traceWith:
    |      |      2.4% {1005ms} FLDictionaryCollectionCluster(FLIteratingCluster)>>addReferenceFrom:to:
    |      |        1.8% {754ms} FLLargeIdentityDictionary>>at:ifAbsentPut:
    |      |          1.2% {483ms} FLLargeIdentityDictionary>>at:ifAbsent:
    |    1.6% {678ms} SmallInteger>>fuelAccept:
    |      |1.6% {675ms} FLLightGeneralMapper>>visitSmallInteger:
    |      |  1.6% {672ms} FLLightGeneralMapper(FLMapper)>>mapAndTraceByClusterName:to:
    |      |    1.3% {516ms} FLLightGeneralMapper(FLMapper)>>clusterKeyedByClusterName:
    |      |      1.2% {514ms} FLLightGeneralMapper(FLMapper)>>clusterKeyedByClusterName:factory:
    |      |        1.2% {475ms} FLLightGeneralMapper(FLMapper)>>clusterInstanceOf:keyInBucket:factory:
    |      |          1.1% {471ms} IdentityDictionary(Dictionary)>>at:ifAbsentPut:
    |      |            1.0% {425ms} primitives
    |    1.3% {528ms} ByteString>>fuelAccept:
    |      1.2% {511ms} FLLightGeneralMapper>>visitHookPrimitive:
    |        1.2% {507ms} FLLightGeneralMapper(FLMapper)>>mapAndTraceByObjectClass:to:
    |          1.2% {476ms} FLLightGeneralMapper(FLMapper)>>clusterKeyedByObjectClass:class:
    |            1.1% {457ms} FLLightGeneralMapper(FLMapper)>>clusterInstanceOf:keyInBucket:factory:
  1.1% {455ms} primitives

**Leaves**
63.6% {26195ms} IdentitySet>>scanFor:
8.9% {3667ms} FLLargeIdentityDictionary>>at:ifAbsent:
5.9% {2434ms} FLLargeIdentityDictionary>>at:put:
5.9% {2419ms} IdentitySet(Set)>>do:
2.3% {935ms} OrderedCollection>>postCopyFrom:to:
1.4% {581ms} IdentityDictionary(Dictionary)>>at:ifAbsentPut:
1.1% {455ms} FLAnalysis>>run
1.1% {444ms} IdentitySet(Collection)>>addAll:

**Memory**
        old +43,659,188 bytes
        young +3,051,820 bytes
        used +46,711,008 bytes
        free -3,959,904 bytes

**GCs**
        full 8 totalling 2,909ms (7.0% uptime), avg 364.0ms
        incr 1006 totalling 2,522ms (6.0% uptime), avg 3.0ms
        tenures 205 (avg 4 GCs/tenure)
        root table 0 overflows
Cheers,
Sean