This pull request removes the copyToSelf method. The main reason it was added was to have all inherited properties available directly on the hook context instead of the prototype chain so you will see them right away if you console.log the context object. However, a performance analysis showed that this part is eating up over 60% of the overall hook runtime:
Inherited properties (like ctx.method) can still be accessed directly so this change won't have any actual breaking changes. In Feathers benchmarks this improved the Koa throughput from 33k requests/second to 39k and for Socket.io from 72k to ~83k requests/second.
This pull request removes the
copyToSelf
method. The main reason it was added was to have all inherited properties available directly on the hook context instead of the prototype chain so you will see them right away if youconsole.log
the context object. However, a performance analysis showed that this part is eating up over 60% of the overall hook runtime:Inherited properties (like
ctx.method
) can still be accessed directly so this change won't have any actual breaking changes. In Feathers benchmarks this improved the Koa throughput from 33k requests/second to 39k and for Socket.io from 72k to ~83k requests/second.