Hello. There is profiler output for ProfileTime profileMode:
10 GARBAGE COLLECTION (total) 11 servers_stream(5)c_cb(1) 12 ForeignMemory.addFree(2) 12 VectorSliceOperations().subslice(3) 13 ForeignMemory.memoise(2)(1) 14 main_handle(1) 15 Int.scan(3)read_digits(3) 17 client_stream(7)to_channel(2) 18 ForeignMemory.memoise(2)(1) 23 client_stream(7)s_cb(1)(1) 29 ThreadLib.protect(3) 30 String.concat(1) 35 CoParser.takeStr(1)(1) 41 Substring.string(1) 109 CRC32.crcstringi(2)loop(2) 329 EV.kevent(4) 1132 Socket.recvVec'(3)
Where can I get to know the meaning of these numbers? Best regards, Nick.
Nick, The first number is the count of the number of times the timer went off in the function. So most of the time was spent in Socket.recvVec. The numbers within the name are added by Poly/ML and typically represent the number of arguments that the function takes. Sequences of strings and numbers (e.g. Int.scan(3)read_digits(3)) represent functions declared inside other functions.
The profiler works with the code that is produced at the end of the compilation process after a lot of inlining so there isn't a precise correspondence between source functions and "functions" in the final code.
Regards, David
On 18/08/2016 10:02, Kostirya wrote:
Hello. There is profiler output for ProfileTime profileMode:
10 GARBAGE COLLECTION (total) 11 servers_stream(5)c_cb(1) 12 ForeignMemory.addFree(2) 12 VectorSliceOperations().subslice(3) 13 ForeignMemory.memoise(2)(1) 14 main_handle(1) 15 Int.scan(3)read_digits(3) 17 client_stream(7)to_channel(2) 18 ForeignMemory.memoise(2)(1) 23 client_stream(7)s_cb(1)(1) 29 ThreadLib.protect(3) 30 String.concat(1) 35 CoParser.takeStr(1)(1) 41 Substring.string(1) 109 CRC32.crcstringi(2)loop(2) 329 EV.kevent(4) 1132 Socket.recvVec'(3)
Where can I get to know the meaning of these numbers? Best regards, Nick.
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
Thank you.
2016-08-18 15:04 GMT+03:00 David Matthews <David.Matthews at prolingua.co.uk>:
Nick, The first number is the count of the number of times the timer went off in the function. So most of the time was spent in Socket.recvVec. The numbers within the name are added by Poly/ML and typically represent the number of arguments that the function takes. Sequences of strings and numbers (e.g. Int.scan(3)read_digits(3)) represent functions declared inside other functions.
The profiler works with the code that is produced at the end of the compilation process after a lot of inlining so there isn't a precise correspondence between source functions and "functions" in the final code.
Regards, David
On 18/08/2016 10:02, Kostirya wrote:
Hello. There is profiler output for ProfileTime profileMode:
10 GARBAGE COLLECTION (total) 11 servers_stream(5)c_cb(1) 12 ForeignMemory.addFree(2) 12 VectorSliceOperations().subslice(3) 13 ForeignMemory.memoise(2)(1) 14 main_handle(1) 15 Int.scan(3)read_digits(3) 17 client_stream(7)to_channel(2) 18 ForeignMemory.memoise(2)(1) 23 client_stream(7)s_cb(1)(1) 29 ThreadLib.protect(3) 30 String.concat(1) 35 CoParser.takeStr(1)(1) 41 Substring.string(1) 109 CRC32.crcstringi(2)loop(2) 329 EV.kevent(4) 1132 Socket.recvVec'(3)
Where can I get to know the meaning of these numbers? Best regards, Nick.
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml
polyml mailing list polyml at inf.ed.ac.uk http://lists.inf.ed.ac.uk/mailman/listinfo/polyml