{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":101273623,"defaultBranch":"4.1","name":"netty","ownerLogin":"franz1981","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2017-08-24T08:44:47.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/13125299?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717358340.0","currentOid":""},"activityList":{"items":[{"before":"d44c410884641cd2dce9d0a00f7ea15418e2895c","after":null,"ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-06-02T19:59:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"}},{"before":"c5daeaaa099c86bb0cfe59e38abbb3b36526207b","after":null,"ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-05-27T09:10:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"}},{"before":"17b880332ac71599514f813f01cc9a9a24c48d59","after":null,"ref":"refs/heads/4.1_weak_ref_cnt","pushedAt":"2024-05-27T09:10:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"}},{"before":"5c96e3a597be4856a37b4d279398d5001e19097d","after":"17b880332ac71599514f813f01cc9a9a24c48d59","ref":"refs/heads/4.1_weak_ref_cnt","pushedAt":"2024-05-16T20:12:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Uses unguarded recycling to reduce the amount of atomic operations","shortMessageHtmlLink":"Uses unguarded recycling to reduce the amount of atomic operations"}},{"before":null,"after":"5c96e3a597be4856a37b4d279398d5001e19097d","ref":"refs/heads/4.1_weak_ref_cnt","pushedAt":"2024-05-16T19:57:44.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"AdaptivePoolingAllocator's Chunks Weak Ref-Counting\n\nMotivation:\n\nAdaptivePoolingAllocator's buffer allocation, while bumping the pointer in the current chunk, is uncontended, but given that ChunkByteBuf extends AbstractReferenceCountedByteBuf for convenience (leak detection, double-free detection, etc etc), it still uses atomic operations.\nDespite Apple M1/M2/... are pretty fast while performing atomic uncontended operations, this is not so true for x86 ones.\n\nModification:\n\nMake ChunkByteBuf to implement its own \"weaker\" reference-count logic, compared to AbstractReferenceCountedByteBuf, which benefit of a double counter, not atomic on the borrowing part.\n\nResult:\n\nBetter allocation performance","shortMessageHtmlLink":"AdaptivePoolingAllocator's Chunks Weak Ref-Counting"}},{"before":"304c5ce08ef642ed65f2a3103c1a5db48570f8ea","after":null,"ref":"refs/heads/main_event_executor_magazines","pushedAt":"2024-05-16T08:09:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"}},{"before":"82418f4aec10acfeb77804ab55583eb4511d439f","after":"304c5ce08ef642ed65f2a3103c1a5db48570f8ea","ref":"refs/heads/main_event_executor_magazines","pushedAt":"2024-05-14T08:41:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Add Magazine::close on thread local's remove","shortMessageHtmlLink":"Add Magazine::close on thread local's remove"}},{"before":"1e1a66a18d31e2669f49d2cd5789671bd3115dbd","after":"d44c410884641cd2dce9d0a00f7ea15418e2895c","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-13T14:46:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Added the bonzini version","shortMessageHtmlLink":"Added the bonzini version"}},{"before":"344bf9bc9c1e10faa123f27b31f2b0ebacb2a637","after":"82418f4aec10acfeb77804ab55583eb4511d439f","ref":"refs/heads/main_event_executor_magazines","pushedAt":"2024-05-13T11:36:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Fix by chris comment","shortMessageHtmlLink":"Fix by chris comment"}},{"before":"57defc5aea1ceeef65db10721d79edcfc15e1fd1","after":"1e1a66a18d31e2669f49d2cd5789671bd3115dbd","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-13T11:03:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Added the bonzini version","shortMessageHtmlLink":"Added the bonzini version"}},{"before":"d029cb3c5b0688d06784786e5f514fda2b61e444","after":"57defc5aea1ceeef65db10721d79edcfc15e1fd1","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T21:12:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Branchless varint decoding\n\nMotivation:\n\nvarint decoding fall shortly when input length is not predictable\n\nModification:\n\nImplements branchless and batchy varint decoding\n\nResult:\n\nBetter performance when inputs length is not predictable","shortMessageHtmlLink":"Branchless varint decoding"}},{"before":"6117214a2e1ed1ba3c6ec447291be44ae2035346","after":"d029cb3c5b0688d06784786e5f514fda2b61e444","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T20:29:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Branchless varint decoding\n\nMotivation:\n\nvarint decoding fall shortly when input length is not predictable\n\nModification:\n\nImplements branchless and batchy varint decoding\n\nResult:\n\nBetter performance when inputs length is not predictable","shortMessageHtmlLink":"Branchless varint decoding"}},{"before":"7d545e454d9da6223de152566d05116b122da4fd","after":"6117214a2e1ed1ba3c6ec447291be44ae2035346","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T20:18:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Branchless varint decoding\n\nMotivation:\n\nvarint decoding fall shortly when input length is not predictable\n\nModification:\n\nImplements branchless and batchy varint decoding\n\nResult:\n\nBetter performance when inputs length is not predictable","shortMessageHtmlLink":"Branchless varint decoding"}},{"before":"a3c432b6b50e8c47959eeceb8aa271d6553c42ef","after":"7d545e454d9da6223de152566d05116b122da4fd","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T19:40:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Branchless varint decoding\n\nMotivation:\n\nvarint decoding fall shortly when input length is not predictable\n\nModification:\n\nImplements branchless and batchy varint decoding\n\nResult:\n\nBetter performance when inputs length is not predictable","shortMessageHtmlLink":"Branchless varint decoding"}},{"before":"90da37c481adb51472f2e6398558b38e9aa9e7ad","after":"a3c432b6b50e8c47959eeceb8aa271d6553c42ef","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T18:47:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Complete implementation","shortMessageHtmlLink":"Complete implementation"}},{"before":"0c1c2ffc9653d36769ed44d843d52d23341afe1f","after":"90da37c481adb51472f2e6398558b38e9aa9e7ad","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T12:30:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"adding comment","shortMessageHtmlLink":"adding comment"}},{"before":"2a6c3322a304af33338208a84354819896bfe0d8","after":"0c1c2ffc9653d36769ed44d843d52d23341afe1f","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T11:44:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Reintroduce andn","shortMessageHtmlLink":"Reintroduce andn"}},{"before":"4854c6f3193168e073514c41491b66063fbead45","after":"2a6c3322a304af33338208a84354819896bfe0d8","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T11:40:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Adding microbenchmark","shortMessageHtmlLink":"Adding microbenchmark"}},{"before":null,"after":"4854c6f3193168e073514c41491b66063fbead45","ref":"refs/heads/4.1_branchless_varint","pushedAt":"2024-05-12T10:53:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"PoC of branchless varint decoding","shortMessageHtmlLink":"PoC of branchless varint decoding"}},{"before":"bca0a9dc7b9467aba62ad3c124fe855d54398f79","after":"344bf9bc9c1e10faa123f27b31f2b0ebacb2a637","ref":"refs/heads/main_event_executor_magazines","pushedAt":"2024-05-10T21:09:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"AdaptivePoolingAllocator EventLoop Magazine's affinity\nMotivation:\n\nAdaptivePoolingAllocator uses some shared Magazines hoping thread's id\ndistribution to improve contended behaviour, but event loops threads can\njust uses their own Magazine(s) and save 2 atomic operations (write\nlock/unlock) in the hot path, further improving performance.\n\nModification:\n\nImplements dedicated event loop Magazines\n\nResult:\n\nBetter allocation performance for event loop threads","shortMessageHtmlLink":"AdaptivePoolingAllocator EventLoop Magazine's affinity"}},{"before":null,"after":"bca0a9dc7b9467aba62ad3c124fe855d54398f79","ref":"refs/heads/main_event_executor_magazines","pushedAt":"2024-05-10T20:57:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"AdaptivePoolingAllocator EventLoop Magazine's affinity\nMotivation:\n\nAdaptivePoolingAllocator uses some shared Magazines hoping thread's id\ndistribution to improve contended behaviour, but event loops threads can\njust uses their own Magazine(s) and save 2 atomic operations (write\nlock/unlock) in the hot path, further improving performance.\n\nModification:\n\nImplements dedicated event loop Magazines\n\nResult:\n\nBetter allocation performance for event loop threads","shortMessageHtmlLink":"AdaptivePoolingAllocator EventLoop Magazine's affinity"}},{"before":"35c38ccedc7f04eaa2aa278b2ab877cdd894020c","after":"c5daeaaa099c86bb0cfe59e38abbb3b36526207b","ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-05-04T00:01:08.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"AdaptivePoolingAllocator EventLoop Magazine's affinity\n\nMotivation:\n\nAdaptivePoolingAllocator uses some shared Magazines hoping thread's id distribution to improve contended behaviour, but event loops threads can just uses their own Magazine(s) and save 2 atomic operations (write lock/unlock) in the hot path, further improving performance.\n\nModification:\n\nImplements dedicated event loop Magazines\n\nResult:\n\nBetter allocation performance for event loop threads","shortMessageHtmlLink":"AdaptivePoolingAllocator EventLoop Magazine's affinity"}},{"before":"35c38ccedc7f04eaa2aa278b2ab877cdd894020c","after":"724d7540d3d2b955e47b48ddad8dbe0ba9c6a9db","ref":"refs/heads/4.1_event_loops_magazines_weak_ref_cnt","pushedAt":"2024-05-03T20:36:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Adding weak ref count to improve the TLAB allocation path","shortMessageHtmlLink":"Adding weak ref count to improve the TLAB allocation path"}},{"before":null,"after":"35c38ccedc7f04eaa2aa278b2ab877cdd894020c","ref":"refs/heads/4.1_event_loops_magazines_weak_ref_cnt","pushedAt":"2024-05-03T20:35:53.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"fix with norman's comments","shortMessageHtmlLink":"fix with norman's comments"}},{"before":"d26de1527ecf1d152ac88829e3d04002f2866698","after":"35c38ccedc7f04eaa2aa278b2ab877cdd894020c","ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-04-30T19:09:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"fix with norman's comments","shortMessageHtmlLink":"fix with norman's comments"}},{"before":"17fd22964a43652596fb0eb32948f05e5e68d545","after":"d26de1527ecf1d152ac88829e3d04002f2866698","ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-04-30T17:17:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"fix with norman's comments","shortMessageHtmlLink":"fix with norman's comments"}},{"before":"2889e4050534dcd76b2fd31d7a5cf315f07c5df5","after":"17fd22964a43652596fb0eb32948f05e5e68d545","ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-04-30T13:10:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"AdaptivePoolingAllocator EventLoop Magazine's affinity\n\nMotivation:\n\nAdaptivePoolingAllocator uses some shared Magazines hoping thread's id distribution to improve contended behaviour, but event loops threads can just uses their own Magazine(s) and save 2 atomic operations (write lock/unlock) in the hot path, further improving performance.\n\nModification:\n\nImplements dedicated event loop Magazines\n\nResult:\n\nBetter allocation performance for event loop threads","shortMessageHtmlLink":"AdaptivePoolingAllocator EventLoop Magazine's affinity"}},{"before":"2cb5b732611708d3d9feaab265179f7baeb36d99","after":"2889e4050534dcd76b2fd31d7a5cf315f07c5df5","ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-04-30T13:03:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"Default to cache magazines, better configuration","shortMessageHtmlLink":"Default to cache magazines, better configuration"}},{"before":"a203ba3ba3b89657f6e778631535398e88099c7f","after":"2cb5b732611708d3d9feaab265179f7baeb36d99","ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-04-29T21:42:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"cache event loop thread decision","shortMessageHtmlLink":"cache event loop thread decision"}},{"before":"808896c591827880def10f0acd570e37ef91395b","after":"a203ba3ba3b89657f6e778631535398e88099c7f","ref":"refs/heads/4.1_event_loops_magazines","pushedAt":"2024-04-29T21:39:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"franz1981","name":"Francesco Nigro","path":"/franz1981","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13125299?s=80&v=4"},"commit":{"message":"cache event loop thread decision","shortMessageHtmlLink":"cache event loop thread decision"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEWlUuCQA","startCursor":null,"endCursor":null}},"title":"Activity ยท franz1981/netty"}