Hi all, I am currently running some tests on the read/write performance of the fuze+ after someone reported some poor read speed compared to the actual card capacity. After troubleshooting some of the issues I realised that some of the *loss* was actually coming from the latencies between our different subsystems (usb, storage) and thus hard to track down without numbers. I know we have profiler option but it is not very useful if you want some relevant number so I decided to create my own performance framework to report relevant events. My approach is that each event should contain the minimum information to make useful statistics offline. Example: - on event when storage_read_sectors in called, containing the drive number and sector count - on event when returning from storage_read_sectors, containing the drive number Why is this useful ? Well you can get lots of information out it, for example draw the average read speed depending on the sector count, also get min and max speed and so on. next step will be to record USB events like: - control/bulk/int transfer completed in usb driver - control/bulk/int transfer handled by stack - UMS read/write handled by usb storage driver And with this plus the previous information, you can get the actual latencies from core driver to stack to function drivers to storage. If you have any thoughts on this or actual ideas of things to measure, please give me some feedback ! That would be great to figure out some of performance problems and just get some useful statistics.
Currently the code is not published, it needs a lot of cleanup. There will be a configure option for it and maybe we can have some runtime on/off switches for subsystems like storage, usb or whatever. Amaury Pouly