-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Service Bus] Perf tests with the framework #12993
Conversation
…to harshan/perf/service-bus
@@ -10,7 +10,8 @@ | |||
"node_modules", | |||
"./types/**/*.d.ts", | |||
"./samples/**/*.ts", | |||
"test/perf/*", | |||
"test/perf-js-libs/*", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if I get what goes in perf-js-libs vs perf/track-? Is it just archiving these files?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More or less, yes.
perf-js-libs
perf-js-libs/azure-sb-package
perf-js-libs/rhea-promise
perf-js-libs/service-bus-v1
perf-js-libs/service-bus-v7
perf/track-*
perf/track-1
- v1perf/track-2
- v7
Description
perf-js-libs
do not use the framework and have the tests for send, streaming receive and batch receive.perf/track-*
uses the framework for send test, and currently has the send test only.- Since this uses the framework, it helps with comparisons across languages.
- Framework isn't capable of handling the receive tests, so they have to be standalone tests.
More thoughts
- Eventually, I intend to have the standalone tests in the
perf/track-*
folder itself and thus removing the need forperf-js-libs/service-bus-v*
folders. - The
perf-js-libs/azure-sb-package
can be removed as it is pretty much outdated at the moment. - That leaves us with
perf-js-libs/rhea-promise
, which could be moved toperf/rhea-promise
after updating the send test with the framework and migrating the standalone receive tests. - Finally, we'll end up with
perf/track-1
,perf/track-2
andperf/rhea-promise
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
await this.sender.sendMessages( | ||
new Array(this.parsedOptions.numberOfMessages.value!).fill(this.sbMessage) | ||
); | ||
await this.sender.sendMessages(this.batch); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Future concern: should we be using .tryAdd() ourselves or are we guaranteed that we'll never exceed the size of a single batch?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmmm, makes sense to use tryAdd. I'll put a follow-up PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still looks good (since my last review!)
Hello @HarshaNalluru! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
New perf folder
To execute the track 2 tests
rush build -t service-bus
.service-bus
foldercd sdk\servicebus\service-bus\
.servicebus\service-bus
folder withSERVICEBUS_CONNECTION_STRING
variables.npm run perf-test:node -- BatchSendTest --warmup 2 --duration 7 --parallel 2
To execture the track 1 tests
test-utils\perfstress
foldercd sdk\test-utils\perfstress\
rush update && rush build -t test-utils-perfstress
rushx pack
service-bus\perf\track-1
foldercd sdk\servicebus\service-bus\perf\track-1
.npm i ..\..\..\..\..\test-utils\perfstress\azure-test-utils-perfstress-1.0.0.tgz
npm install
to getservice-bus V1
.servicebus\service-bus
folder withSERVICEBUS_CONNECTION_STRING
andQUEUE_NAME
variables.npm run perf-test:node -- BatchSendTest --warmup 2 --duration 7 --parallel 2
Existing perf tests
azure-sb
,rhea-promise
,service-bus-v1
, andservice-bus-v7
libraries.