Class JournalPerfSpec
java.lang.Object
org.apache.pekko.persistence.PluginSpec
org.apache.pekko.persistence.journal.JournalSpec
org.apache.pekko.persistence.journal.JournalPerfSpec
- All Implemented Interfaces:
Serializable,CapabilityFlags,JournalCapabilityFlags,MayVerb,OptionalTests,TestKitBase,org.scalactic.Explicitly,org.scalactic.Tolerance,org.scalactic.TripleEquals,org.scalactic.TripleEqualsSupport,org.scalatest.Alerting,org.scalatest.Assertions,org.scalatest.BeforeAndAfterAll,org.scalatest.BeforeAndAfterEach,org.scalatest.Documenting,org.scalatest.Informing,org.scalatest.matchers.dsl.MatcherWords,org.scalatest.matchers.should.Matchers,org.scalatest.Notifying,org.scalatest.Suite,org.scalatest.SuiteMixin,org.scalatest.TestRegistration,org.scalatest.TestSuite,org.scalatest.verbs.CanVerb,org.scalatest.verbs.MustVerb,org.scalatest.verbs.ShouldVerb,org.scalatest.wordspec.AnyWordSpecLike
- Direct Known Subclasses:
JavaJournalPerfSpec
This spec measures execution times of the basic operations that an
pekko.persistence.PersistentActor provides,
using the provided Journal (plugin).
It is *NOT* meant to be a comprehensive benchmark, but rather aims to help plugin developers to easily determine if their plugin's performance is roughly as expected. It also validates the plugin still works under "more messages" scenarios.
In case your journal plugin needs some kind of setup or teardown, override the beforeAll or afterAll
methods (don't forget to call super in your overridden methods).
For a Java and JUnit consumable version of the TCK please refer to pekko.persistence.japi.journal.JavaJournalPerfSpec.
- See Also:
-
pekko.persistence.journal.JournalSpec- Serialized Form
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic classstatic classNested classes/interfaces inherited from interface org.scalatest.wordspec.AnyWordSpecLike
org.scalatest.wordspec.AnyWordSpecLike.AfterWord, org.scalatest.wordspec.AnyWordSpecLike.ItWord, org.scalatest.wordspec.AnyWordSpecLike.ResultOfTaggedAsInvocationOnString, org.scalatest.wordspec.AnyWordSpecLike.TheyWord, org.scalatest.wordspec.AnyWordSpecLike.WordSpecStringWrapperNested classes/interfaces inherited from interface org.scalatest.Assertions
org.scalatest.Assertions.AssertionsHelperNested classes/interfaces inherited from interface org.scalatest.verbs.CanVerb
org.scalatest.verbs.CanVerb.StringCanWrapperForVerbNested classes/interfaces inherited from interface org.scalactic.Explicitly
org.scalactic.Explicitly.DecidedByEquality<A extends Object>, org.scalactic.Explicitly.DecidedWord, org.scalactic.Explicitly.DeterminedByEquivalence<T extends Object>, org.scalactic.Explicitly.DeterminedWord, org.scalactic.Explicitly.TheAfterWordNested classes/interfaces inherited from interface org.scalatest.matchers.should.Matchers
org.scalatest.matchers.should.Matchers.AnWord, org.scalatest.matchers.should.Matchers.AnyShouldWrapper<T extends Object>, org.scalatest.matchers.should.Matchers.AWord, org.scalatest.matchers.should.Matchers.Collected, org.scalatest.matchers.should.Matchers.HavePropertyMatcherGenerator, org.scalatest.matchers.should.Matchers.KeyWord, org.scalatest.matchers.should.Matchers.RegexWord, org.scalatest.matchers.should.Matchers.RegexWrapper, org.scalatest.matchers.should.Matchers.ResultOfBeWordForAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfBeWordForCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfBeWordForCollectedArray<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfContainWordForCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfEndWithWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfEndWithWordForString, org.scalatest.matchers.should.Matchers.ResultOfFullyMatchWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfFullyMatchWordForString, org.scalatest.matchers.should.Matchers.ResultOfHaveWordForCollectedExtent<A extends Object>, org.scalatest.matchers.should.Matchers.ResultOfHaveWordForExtent<A extends Object>, org.scalatest.matchers.should.Matchers.ResultOfIncludeWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfIncludeWordForString, org.scalatest.matchers.should.Matchers.ResultOfNotWordForCollectedAny<T extends Object>, org.scalatest.matchers.should.Matchers.ResultOfStartWithWordForCollectedString, org.scalatest.matchers.should.Matchers.ResultOfStartWithWordForString, org.scalatest.matchers.should.Matchers.StringShouldWrapper, org.scalatest.matchers.should.Matchers.TheSameInstanceAsPhrase, org.scalatest.matchers.should.Matchers.ValueWordNested classes/interfaces inherited from interface org.apache.pekko.persistence.scalatest.MayVerb
MayVerb.StringMayWrapperForVerb, MayVerb.TestCanceledByFailure, MayVerb.TestCanceledByFailure$Nested classes/interfaces inherited from interface org.scalatest.verbs.MustVerb
org.scalatest.verbs.MustVerb.StringMustWrapperForVerbNested classes/interfaces inherited from interface org.scalatest.verbs.ShouldVerb
org.scalatest.verbs.ShouldVerb.StringShouldWrapperForVerbNested classes/interfaces inherited from interface org.scalatest.TestSuite
org.scalatest.TestSuite.NoArgTest, org.scalatest.TestSuite.NoArgTest$Nested classes/interfaces inherited from interface org.scalactic.Tolerance
org.scalactic.Tolerance.PlusOrMinusWrapper<T extends Object>Nested classes/interfaces inherited from interface org.scalactic.TripleEqualsSupport
org.scalactic.TripleEqualsSupport.AToBEquivalenceConstraint<A extends Object,B extends Object>, org.scalactic.TripleEqualsSupport.BToAEquivalenceConstraint<A extends Object, B extends Object>, org.scalactic.TripleEqualsSupport.CheckingEqualizer<L extends Object>, org.scalactic.TripleEqualsSupport.EqualityConstraint<A extends Object, B extends Object>, org.scalactic.TripleEqualsSupport.Equalizer<L extends Object>, org.scalactic.TripleEqualsSupport.Spread<T extends Object>, org.scalactic.TripleEqualsSupport.Spread$, org.scalactic.TripleEqualsSupport.TripleEqualsInvocation<T extends Object>, org.scalactic.TripleEqualsSupport.TripleEqualsInvocation$, org.scalactic.TripleEqualsSupport.TripleEqualsInvocationOnSpread<T extends Object>, org.scalactic.TripleEqualsSupport.TripleEqualsInvocationOnSpread$ -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlongOverride in order to customize timeouts used for expectMsg, in order to tune the awaits to your journal's perfbenchActor(int replyAfter) intNumber of messages sent to the PersistentActor under test for each test iterationvoidfeedAndExpectLast(ActorRef actor, String mode, scala.collection.immutable.Seq<Object> cmnds) voidmeasure(scala.Function1<scala.concurrent.duration.Duration, String> msg, scala.Function0<scala.runtime.BoxedUnit> block) Executes a block of code multiple times (no warm-up)intNumber of measurement iterations each test will be run.Methods inherited from class org.apache.pekko.persistence.journal.JournalSpec
beforeEach, config, journal, preparePersistenceId, replayedMessage, replayedMessage$default$2, supportsAtomicPersistAllOfSeveralEvents, supportsMetadata, supportsSerialization, system, writeMessagesMethods inherited from class org.apache.pekko.persistence.PluginSpec
a, actorInstanceId, after, afterAll, an, be, beforeAll, behave, compile, config, contain, decided, defined, determined, empty, endWith, exist, extension, fullyMatch, have, include, invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected, it, key, length, matchPattern, NoArgTest, not, org$scalactic$Explicitly$_setter_$after_$eq, org$scalactic$Explicitly$_setter_$decided_$eq, org$scalactic$Explicitly$_setter_$determined_$eq, org$scalatest$Assertions$_setter_$succeed_$eq, org$scalatest$BeforeAndAfterAll$_setter_$invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$be_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$compile_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$contain_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$defined_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$empty_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$endWith_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$exist_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$fullyMatch_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$have_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$include_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$length_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$matchPattern_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$not_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$readable_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$size_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$sorted_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$startWith_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$typeCheck_$eq, org$scalatest$matchers$dsl$MatcherWords$_setter_$writable_$eq, org$scalatest$matchers$should$Matchers$_setter_$a_$eq, org$scalatest$matchers$should$Matchers$_setter_$an_$eq, org$scalatest$matchers$should$Matchers$_setter_$key_$eq, org$scalatest$matchers$should$Matchers$_setter_$regex_$eq, org$scalatest$matchers$should$Matchers$_setter_$theSameInstanceAs_$eq, org$scalatest$matchers$should$Matchers$_setter_$value_$eq, org$scalatest$Suite$_setter_$styleName_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$behave_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$it_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$stackDepth_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$styleName_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$subjectRegistrationFunction_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$subjectWithAfterWordRegistrationFunction_$eq, org$scalatest$wordspec$AnyWordSpecLike$_setter_$they_$eq, pid, readable, regex, size, sorted, startWith, styleName, subjectRegistrationFunction, subjectWithAfterWordRegistrationFunction, subscribe, succeed, testActor, theSameInstanceAs, they, typeCheck, value, writable, writerUuidMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.scalatest.wordspec.AnyWordSpecLike
afterWord, alert, convertToWordSpecStringWrapper, info, markup, note, org$scalatest$wordspec$AnyWordSpecLike$_setter_$org$scalatest$wordspec$AnyWordSpecLike$$engine_$eq, org$scalatest$wordspec$AnyWordSpecLike$$engine, org$scalatest$wordspec$AnyWordSpecLike$$registerBranch, org$scalatest$wordspec$AnyWordSpecLike$$registerShorthandBranch, org$scalatest$wordspec$AnyWordSpecLike$$registerTestToIgnore, org$scalatest$wordspec$AnyWordSpecLike$$registerTestToRun, registerIgnoredTest, registerTest, run, runTest, runTests, tags, testDataFor, testDataFor$default$2, testNamesMethods inherited from interface org.scalatest.Assertions
assertResult, assertResult, assertThrows, cancel, cancel, cancel, cancel, fail, fail, fail, fail, intercept, newAssertionFailedException, newTestCanceledException, pending, pendingUntilFixed, withClueMethods inherited from interface org.scalatest.BeforeAndAfterAll
runMethods inherited from interface org.scalatest.BeforeAndAfterEach
afterEach, runTestMethods inherited from interface org.scalatest.verbs.CanVerb
convertToStringCanWrapperMethods inherited from interface org.apache.pekko.persistence.JournalCapabilityFlags
supportsRejectingNonSerializableObjectsMethods inherited from interface org.scalatest.matchers.should.Matchers
$greater, $greater$eq, $less, $less$eq, a, all, all, all, all, allElementsOf, allOf, an, atLeast, atLeast, atLeast, atLeast, atLeastOneElementOf, atLeastOneOf, atMost, atMost, atMost, atMost, atMostOneElementOf, atMostOneOf, between, between, between, convertSymbolToHavePropertyMatcherGenerator, convertToAnyShouldWrapper, convertToRegexWrapper, convertToStringShouldWrapper, definedAt, doCollected, equal, equal, every, every, every, every, exactly, exactly, exactly, exactly, inOrder, inOrderElementsOf, inOrderOnly, message, no, no, no, noElementsOf, noneOf, of, oneElementOf, oneOf, only, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$AllCollected_$eq, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$EveryCollected_$eq, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$NoCollected_$eq, org$scalatest$matchers$should$Matchers$_setter_$org$scalatest$matchers$should$Matchers$$ShouldMethodHelper_$eq, org$scalatest$matchers$should$Matchers$$AllCollected, org$scalatest$matchers$should$Matchers$$AtLeastCollected, org$scalatest$matchers$should$Matchers$$AtMostCollected, org$scalatest$matchers$should$Matchers$$BetweenCollected, org$scalatest$matchers$should$Matchers$$EveryCollected, org$scalatest$matchers$should$Matchers$$ExactlyCollected, org$scalatest$matchers$should$Matchers$$NoCollected, org$scalatest$matchers$should$Matchers$$ShouldMethodHelper, the, theSameElementsAs, theSameElementsInOrderAs, thrownByMethods inherited from interface org.scalatest.matchers.dsl.MatcherWords
equal, noExceptionMethods inherited from interface org.apache.pekko.persistence.scalatest.MayVerb
convertToStringMayWrapper, mayVerbStacktraceContextFrames, optionalMethods inherited from interface org.scalatest.verbs.MustVerb
convertToStringMustWrapperForVerbMethods inherited from interface org.apache.pekko.persistence.scalatest.OptionalTests
optionalMethods inherited from interface org.scalatest.verbs.ShouldVerb
convertToStringShouldWrapperForVerbMethods inherited from interface org.scalatest.Suite
createCatchReporter, execute, execute$default$1, execute$default$2, execute$default$3, execute$default$4, execute$default$5, execute$default$6, execute$default$7, expectedTestCount, nestedSuites, rerunner, runNestedSuites, suiteId, suiteNameMethods inherited from interface org.scalatest.SuiteMixin
expectedTestCount, nestedSuites, rerunner, runNestedSuites, runTests, suiteId, suiteName, tags, testDataFor, testNamesMethods inherited from interface org.apache.pekko.testkit.TestKitBase
assertForDuration, assertForDuration$default$3, awaitAssert, awaitAssert$default$2, awaitAssert$default$3, awaitCond, awaitCond$default$2, awaitCond$default$3, awaitCond$default$4, checkMissingAndUnexpected, childActorOf, childActorOf, childActorOf, childActorOf, end_$eq, expectMsg, expectMsg, expectMsg, expectMsg_internal, expectMsg_internal$default$3, expectMsgAllClassOf, expectMsgAllClassOf, expectMsgAllConformingOf, expectMsgAllConformingOf, expectMsgAllOf, expectMsgAllOf, expectMsgAllOf_internal, expectMsgAnyClassOf, expectMsgAnyClassOf, expectMsgAnyClassOf_internal, expectMsgAnyOf, expectMsgAnyOf, expectMsgAnyOf_internal, expectMsgClass, expectMsgClass, expectMsgClass_internal, expectMsgPF, expectMsgPF$default$1, expectMsgPF$default$2, expectMsgType, expectMsgType, expectNoMessage, expectNoMessage, expectNoMsg_internal, expectTerminated, expectTerminated$default$2, fishForMessage, fishForMessage$default$1, fishForMessage$default$2, fishForSpecificMessage, fishForSpecificMessage$default$1, fishForSpecificMessage$default$2, format, ignoreMsg, ignoreNoMsg, internalExpectMsgAllClassOf, internalExpectMsgAllConformingOf, lastSender, lastWasNoMsg_$eq, msgAvailable, now, receiveN, receiveN, receiveN_internal, receiveOne, receiveWhile, receiveWhile$default$1, receiveWhile$default$2, receiveWhile$default$3, remaining, remainingOr, remainingOrDefault, remainingOrDilated, setAutoPilot, shutdown, shutdown$default$1, shutdown$default$2, shutdown$default$3, testActorName, testKitSettings, unwatch, watch, within, withinMethods inherited from interface org.scalatest.TestSuite
withFixtureMethods inherited from interface org.scalactic.Tolerance
convertNumericToPlusOrMinusWrapperMethods inherited from interface org.scalactic.TripleEquals
conversionCheckedConstraint, convertEquivalenceToAToBConstraint, convertEquivalenceToAToBConversionConstraint, convertEquivalenceToBToAConstraint, convertEquivalenceToBToAConversionConstraint, convertToCheckingEqualizer, convertToEqualizer, lowPriorityConversionCheckedConstraint, lowPriorityTypeCheckedConstraint, typeCheckedConstraint, unconstrainedEqualityMethods inherited from interface org.scalactic.TripleEqualsSupport
$bang$eq$eq, $bang$eq$eq, $bang$eq$eq, $eq$eq$eq, $eq$eq$eq, $eq$eq$eq, defaultEquality
-
Constructor Details
-
JournalPerfSpec
public JournalPerfSpec(com.typesafe.config.Config config)
-
-
Method Details
-
benchActor
-
feedAndExpectLast
-
measure
public void measure(scala.Function1<scala.concurrent.duration.Duration, String> msg, scala.Function0<scala.runtime.BoxedUnit> block) Executes a block of code multiple times (no warm-up) -
awaitDurationMillis
public long awaitDurationMillis()Override in order to customize timeouts used for expectMsg, in order to tune the awaits to your journal's perf -
eventsCount
public int eventsCount()Number of messages sent to the PersistentActor under test for each test iteration -
measurementIterations
public int measurementIterations()Number of measurement iterations each test will be run.
-