codeceptjs run-workers X can do with sequencing improvements
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
這個 Issue 還沒有評估資料。
描述
What are you trying to achieve?
codeceptjs run-workers 5 should be more performant and pull tests from a pool instead of having each test pre-assigned to a thread
What do you get instead?
Currently run-workers will create a pool of all tests when codeceptjs run-workers 5 is executed.
It then pre-assigns each test to a CPU thread and starts running all tests assigned to each thread.
This creates an even distribution of tests per thread. The problem is that not all tests are equal in terms of runtime
Small sample from end of test execution
[01] ✔ in 4354ms
[04] ✔ in 4794ms
[02] ✔ in 3328ms
[04] ✔ in 7131ms
[03] ✔ in 13437ms
[01] ✔ in 11558ms
[05] ✔ in 21881ms
[02] ✔ in 7051ms
[02] ✔ in 4259ms
[03] ✔ in 15055ms
[02] ✔ in 5372ms
[03] ✔ in 5274ms
[03] ✔ in 17304ms
If all tests in thread 1 would complete in 2 minutes, then thread 1 would not pick up any more tests even if thread 2 - 5 have 6 tests all still waiting in their queue. This means that tests are only as fast as the slowest thread rather than allowing tests to be picked up by an idle thread.
In the example above thread 02 and 03 were slower than others. thread 01, 04 and 05 were waiting in idle while 02 and 03 were continuing with their queue.
In an ideal world, thread 01, 04 or 05 would see this incomplete queue and pick up a task to speed up test performance.
Details
- CodeceptJS version: 3.5.3
- NodeJS Version: 18
- Operating System: MacOS / Linux
- puppeteer
- 主要語言
- JavaScript
- 星號
- 4.2k
- 分支
- 756
- 平均合併
- 1 天 8 小時
- 30 天內合併 PR
- 18
環境準備
- 提供 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
codeceptjs/CodeceptJS 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 68/100
codeceptjs/CodeceptJS#5731 ·
維護者通常 1 天內回覆
-
`I.waitForFile` (FileSystem helper) fails if directory does not exist (yet)可能已有人在做 @danielrentz 於 249 天前認領。 未關閉stale
難度 2/5 1-3 小時 新手友好度 72/100
codeceptjs/CodeceptJS#5420 · 1 則留言 ·
維護者通常 1 天內回覆
-
stale
難度 2/5 1-3 小時 新手友好度 76/100
codeceptjs/CodeceptJS#5358 · 1 則留言 ·
維護者通常 1 天內回覆
-
stale
難度 2/5 1-3 小時 新手友好度 78/100
codeceptjs/CodeceptJS#4958 · 10 則留言 · 2 個 reaction ·
維護者通常 1 天內回覆
-
stale
難度 1/5 1 小時以內 新手友好度 72/100
codeceptjs/CodeceptJS#4778 · 3 則留言 ·
維護者通常 1 天內回覆
查看 codeceptjs/CodeceptJS 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 82/100
invoiceninja/invoiceninja#13320 ·
維護者通常 1 天內回覆
-
NoCode.vue, Task.vue: replace explicit `any` with real types可能已有人在做 @prayas-bit 今天認領。 未關閉area/frontend good first issue kind/cooldown
難度 2/5 1-3 小時 新手友好度 67/100
kestra-io/kestra#20347 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 70/100
ubuntu/gnome-shell-extension-appindicator#676 · 1 則留言 ·