Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. function msr (origFunc) {
  2. origFunc = origFunc || this
  3. function wrappedFunc () {
  4. var args = arguments
  5. var origCb = arguments[args.length - 1]
  6. var startTime = Date.now()
  7. function wrapCb () {
  8. var endTime = Date.now()
  9. console.log('### Duration in ms', endTime - startTime, 'for', origFunc.name)
  10. return origCb.apply(this, arguments)
  11. }
  12. args[args.length - 1] = wrapCb
  13. var retVal = origFunc.apply(this, args)
  14. // var syncCallTime = Date.now()
  15. return retVal
  16. }
  17. return wrappedFunc
  18. }
  19. Function.prototype.msr = msr
  20.  
  21. //usage
  22. // to measure
  23. fs.writeFile('a1.txt', function (err, data) { /* read data */ })
  24. // change it to
  25. fs.writeFile.msr()('a1.txt', function (err, data) { /* read data */ })
  26. // or
  27. msr(fs.writeFile)('a1.txt', function (err, data) { /* read data */ })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement