public abstract class JournalPerfSpec extends JournalSpec
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 JavaJournalPerfSpec
.
JournalSpec
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
JournalPerfSpec.BenchActor |
static class |
JournalPerfSpec.Cmd |
static class |
JournalPerfSpec.Cmd$ |
static class |
JournalPerfSpec.ResetCounter$ |
org.scalatest.WordSpecLike.AfterWord, org.scalatest.WordSpecLike.ItWord, org.scalatest.WordSpecLike.ResultOfTaggedAsInvocationOnString, org.scalatest.WordSpecLike.TheyWord, org.scalatest.WordSpecLike.WordSpecStringWrapper
org.scalatest.Suite.NoArgTest, org.scalatest.Suite.NoArgTest$
org.scalatest.Assertions.AssertionsHelper, org.scalatest.Assertions.NormalResult, org.scalatest.Assertions.NormalResult$
org.scalactic.TripleEqualsSupport.AToBEquivalenceConstraint<A,B>, org.scalactic.TripleEqualsSupport.BToAEquivalenceConstraint<A,B>, org.scalactic.TripleEqualsSupport.CheckingEqualizer<L>, org.scalactic.TripleEqualsSupport.EqualityConstraint<A,B>, org.scalactic.TripleEqualsSupport.Equalizer<L>, org.scalactic.TripleEqualsSupport.LegacyCheckingEqualizer<L>, org.scalactic.TripleEqualsSupport.LegacyEqualizer<L>, org.scalactic.TripleEqualsSupport.Spread<T>, org.scalactic.TripleEqualsSupport.Spread$, org.scalactic.TripleEqualsSupport.TripleEqualsInvocation<T>, org.scalactic.TripleEqualsSupport.TripleEqualsInvocation$, org.scalactic.TripleEqualsSupport.TripleEqualsInvocationOnSpread<T>, org.scalactic.TripleEqualsSupport.TripleEqualsInvocationOnSpread$
org.scalatest.words.MustVerb.StringMustWrapperForVerb, org.scalatest.words.MustVerb.StringMustWrapperForVerb$class
org.scalatest.words.CanVerb.StringCanWrapperForVerb, org.scalatest.words.CanVerb.StringCanWrapperForVerb$class
org.scalatest.Matchers.AllCollected$, org.scalatest.Matchers.AnWord, org.scalatest.Matchers.AnyShouldWrapper<T>, org.scalatest.Matchers.AtLeastCollected, org.scalatest.Matchers.AtLeastCollected$, org.scalatest.Matchers.AtMostCollected, org.scalatest.Matchers.AtMostCollected$, org.scalatest.Matchers.AWord, org.scalatest.Matchers.BetweenCollected, org.scalatest.Matchers.BetweenCollected$, org.scalatest.Matchers.Collected, org.scalatest.Matchers.EveryCollected$, org.scalatest.Matchers.ExactlyCollected, org.scalatest.Matchers.ExactlyCollected$, org.scalatest.Matchers.HavePropertyMatcherGenerator, org.scalatest.Matchers.KeyWord, org.scalatest.Matchers.NoCollected$, org.scalatest.Matchers.RegexWord, org.scalatest.Matchers.RegexWrapper, org.scalatest.Matchers.ResultOfBeWordForAny<T>, org.scalatest.Matchers.ResultOfBeWordForCollectedAny<T>, org.scalatest.Matchers.ResultOfBeWordForCollectedArray<T>, org.scalatest.Matchers.ResultOfCollectedAny<T>, org.scalatest.Matchers.ResultOfContainWordForCollectedAny<T>, org.scalatest.Matchers.ResultOfEndWithWordForCollectedString, org.scalatest.Matchers.ResultOfEndWithWordForString, org.scalatest.Matchers.ResultOfEvaluatingApplication, org.scalatest.Matchers.ResultOfFullyMatchWordForCollectedString, org.scalatest.Matchers.ResultOfFullyMatchWordForString, org.scalatest.Matchers.ResultOfHaveWordForCollectedExtent<A>, org.scalatest.Matchers.ResultOfHaveWordForExtent<A>, org.scalatest.Matchers.ResultOfIncludeWordForCollectedString, org.scalatest.Matchers.ResultOfIncludeWordForString, org.scalatest.Matchers.ResultOfNotWordForCollectedAny<T>, org.scalatest.Matchers.ResultOfProduceInvocation<T>, org.scalatest.Matchers.ResultOfStartWithWordForCollectedString, org.scalatest.Matchers.ResultOfStartWithWordForString, org.scalatest.Matchers.ShouldMethodHelper$, org.scalatest.Matchers.StringShouldWrapper, org.scalatest.Matchers.TheSameInstanceAsPhrase, org.scalatest.Matchers.ValueWord
org.scalactic.Tolerance.PlusOrMinusWrapper<T>
Constructor and Description |
---|
JournalPerfSpec(com.typesafe.config.Config config) |
Modifier and Type | Method and Description |
---|---|
long |
awaitDurationMillis()
Override in order to customize timeouts used for expectMsg, in order to tune the awaits to your journal's perf
|
akka.actor.ActorRef |
benchActor(int replyAfter) |
int |
eventsCount()
Number of messages sent to the PersistentActor under test for each test iteration
|
void |
feedAndExpectLast(akka.actor.ActorRef actor,
java.lang.String mode,
scala.collection.immutable.Seq<java.lang.Object> cmnds) |
void |
measure(scala.Function1<scala.concurrent.duration.Duration,java.lang.String> msg,
scala.Function0<scala.runtime.BoxedUnit> block)
Executes a block of code multiple times (no warm-up)
|
int |
measurementIterations()
Number of measurement iterations each test will be run.
|
beforeEach, config, journal, replayedMessage, supportsAtomicPersistAllOfSeveralEvents, system, writeMessages
actorInstanceId, afterAll, beforeAll, config, extension, pid, subscribe, writerUuid
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
akka$testkit$TestKitBase$_setter_$akka$testkit$TestKitBase$$queue_$eq, akka$testkit$TestKitBase$_setter_$testActor_$eq, akka$testkit$TestKitBase$_setter_$testKitSettings_$eq, akka$testkit$TestKitBase$$end_$eq, akka$testkit$TestKitBase$$end, akka$testkit$TestKitBase$$lastWasNoMsg_$eq, akka$testkit$TestKitBase$$lastWasNoMsg, akka$testkit$TestKitBase$$queue, awaitAssert, awaitAssert$default$2, awaitAssert$default$3, awaitCond, awaitCond$default$2, awaitCond$default$3, awaitCond$default$4, expectMsg, expectMsg, expectMsg, expectMsgAllClassOf, expectMsgAllClassOf, expectMsgAllConformingOf, expectMsgAllConformingOf, expectMsgAllOf, expectMsgAllOf, expectMsgAnyClassOf, expectMsgAnyClassOf, expectMsgAnyOf, expectMsgAnyOf, expectMsgClass, expectMsgClass, expectMsgPF, expectMsgPF$default$1, expectMsgPF$default$2, expectMsgType, expectMsgType, expectNoMsg, expectNoMsg, expectTerminated, expectTerminated$default$2, fishForMessage, fishForMessage$default$1, fishForMessage$default$2, ignoreMsg, ignoreNoMsg, lastMessage_$eq, lastMessage, lastSender, msgAvailable, now, receiveN, receiveN, receiveOne, receiveWhile, receiveWhile$default$1, receiveWhile$default$2, receiveWhile$default$3, remaining, remainingOr, remainingOrDefault, setAutoPilot, shutdown, shutdown$default$1, shutdown$default$2, shutdown$default$3, testActor, testActorName, testKitSettings, unwatch, watch, within, within
afterWord, alert, behave, convertToWordSpecStringWrapper, info, it, markup, note, org$scalatest$WordSpecLike$_setter_$behave_$eq, org$scalatest$WordSpecLike$_setter_$it_$eq, org$scalatest$WordSpecLike$_setter_$org$scalatest$WordSpecLike$$engine_$eq, org$scalatest$WordSpecLike$_setter_$styleName_$eq, org$scalatest$WordSpecLike$_setter_$subjectRegistrationFunction_$eq, org$scalatest$WordSpecLike$_setter_$subjectWithAfterWordRegistrationFunction_$eq, org$scalatest$WordSpecLike$_setter_$they_$eq, org$scalatest$WordSpecLike$$engine, registerIgnoredTest, registerTest, run, runTest, runTests, styleName, subjectRegistrationFunction, subjectWithAfterWordRegistrationFunction, tags, testDataFor, testDataFor$default$2, testNames, they
createCatchReporter, execute, execute, execute$default$1, execute$default$2, execute$default$3, execute$default$4, execute$default$5, execute$default$6, execute$default$7, expectedTestCount, nestedSuites, NoArgTest, org$scalatest$Suite$_setter_$styleName_$eq, pending, pendingUntilFixed, rerunner, runNestedSuites, suiteId, suiteName, withFixture
assert, assert, assertionsHelper, assertResult, assertResult, assume, assume, cancel, cancel, cancel, cancel, expect, expect, expectResult, expectResult, fail, fail, fail, fail, intercept, newAssertionFailedException, newAssertionFailedException, newTestCanceledException, org$scalatest$Assertions$_setter_$assertionsHelper_$eq, trap, withClue
conversionCheckedConstraint, convertEquivalenceToAToBConstraint, convertEquivalenceToAToBConversionConstraint, convertEquivalenceToBToAConstraint, convertEquivalenceToBToAConversionConstraint, convertToCheckingEqualizer, convertToEqualizer, convertToLegacyCheckingEqualizer, convertToLegacyEqualizer, lowPriorityConversionCheckedConstraint, lowPriorityTypeCheckedConstraint, typeCheckedConstraint, unconstrainedEquality
$bang$eq$eq, $bang$eq$eq, $bang$eq$eq, $eq$eq$eq, $eq$eq$eq, $eq$eq$eq, defaultEquality
$greater, $greater$eq, $less, $less$eq, a, a, all, all, all, allOf, an, an, atLeast, atLeast, atLeast, atLeastOneOf, atMost, atMost, atMost, atMostOneOf, between, between, between, convertSymbolToHavePropertyMatcherGenerator, convertToAnyShouldWrapper, convertToRegexWrapper, convertToStringShouldWrapper, definedAt, doCollected, equal, equal, evaluating, every, every, every, exactly, exactly, exactly, inOrder, inOrderOnly, key, message, no, no, no, noneOf, of, oneOf, only, org$scalatest$Matchers$_setter_$a_$eq, org$scalatest$Matchers$_setter_$an_$eq, org$scalatest$Matchers$_setter_$key_$eq, org$scalatest$Matchers$_setter_$regex_$eq, org$scalatest$Matchers$_setter_$theSameInstanceAs_$eq, org$scalatest$Matchers$_setter_$value_$eq, org$scalatest$Matchers$$AllCollected, org$scalatest$Matchers$$AtLeastCollected, org$scalatest$Matchers$$AtMostCollected, org$scalatest$Matchers$$BetweenCollected, org$scalatest$Matchers$$EveryCollected, org$scalatest$Matchers$$ExactlyCollected, org$scalatest$Matchers$$NoCollected, org$scalatest$Matchers$$ShouldMethodHelper, produce, regex, the, theSameElementsAs, theSameElementsInOrderAs, theSameInstanceAs, thrownBy, value
be, compile, contain, defined, empty, endWith, equal, exist, fullyMatch, have, include, length, matchPattern, noException, not, org$scalatest$words$MatcherWords$_setter_$be_$eq, org$scalatest$words$MatcherWords$_setter_$compile_$eq, org$scalatest$words$MatcherWords$_setter_$contain_$eq, org$scalatest$words$MatcherWords$_setter_$defined_$eq, org$scalatest$words$MatcherWords$_setter_$empty_$eq, org$scalatest$words$MatcherWords$_setter_$endWith_$eq, org$scalatest$words$MatcherWords$_setter_$exist_$eq, org$scalatest$words$MatcherWords$_setter_$fullyMatch_$eq, org$scalatest$words$MatcherWords$_setter_$have_$eq, org$scalatest$words$MatcherWords$_setter_$include_$eq, org$scalatest$words$MatcherWords$_setter_$length_$eq, org$scalatest$words$MatcherWords$_setter_$matchPattern_$eq, org$scalatest$words$MatcherWords$_setter_$noException_$eq, org$scalatest$words$MatcherWords$_setter_$not_$eq, org$scalatest$words$MatcherWords$_setter_$readable_$eq, org$scalatest$words$MatcherWords$_setter_$size_$eq, org$scalatest$words$MatcherWords$_setter_$sorted_$eq, org$scalatest$words$MatcherWords$_setter_$startWith_$eq, org$scalatest$words$MatcherWords$_setter_$typeCheck_$eq, org$scalatest$words$MatcherWords$_setter_$writable_$eq, readable, size, sorted, startWith, typeCheck, writable
after, decided, determined, org$scalactic$Explicitly$_setter_$after_$eq, org$scalactic$Explicitly$_setter_$decided_$eq, org$scalactic$Explicitly$_setter_$determined_$eq
afterAll, beforeAll, invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected, org$scalatest$BeforeAndAfterAll$_setter_$invokeBeforeAllAndAfterAllEvenIfNoTestsAreExpected_$eq, run
public akka.actor.ActorRef benchActor(int replyAfter)
public void feedAndExpectLast(akka.actor.ActorRef actor, java.lang.String mode, scala.collection.immutable.Seq<java.lang.Object> cmnds)
public void measure(scala.Function1<scala.concurrent.duration.Duration,java.lang.String> msg, scala.Function0<scala.runtime.BoxedUnit> block)
public long awaitDurationMillis()
public int eventsCount()
public int measurementIterations()