| /* | |
| * Copyright (c) 2024 EdgeImpulse Inc. | |
| * | |
| * Generated by Edge Impulse and licensed under the applicable Edge Impulse | |
| * Terms of Service. Community and Professional Terms of Service | |
| * (https://edgeimpulse.com/legal/terms-of-service) or Enterprise Terms of | |
| * Service (https://edgeimpulse.com/legal/enterprise-terms-of-service), | |
| * according to your product plan subscription (the “License”). | |
| * | |
| * This software, documentation and other associated files (collectively referred | |
| * to as the “Software”) is a single SDK variation generated by the Edge Impulse | |
| * platform and requires an active paid Edge Impulse subscription to use this | |
| * Software for any purpose. | |
| * | |
| * You may NOT use this Software unless you have an active Edge Impulse subscription | |
| * that meets the eligibility requirements for the applicable License, subject to | |
| * your full and continued compliance with the terms and conditions of the License, | |
| * including without limitation any usage restrictions under the applicable License. | |
| * | |
| * If you do not have an active Edge Impulse product plan subscription, or if use | |
| * of this Software exceeds the usage limitations of your Edge Impulse product plan | |
| * subscription, you are not permitted to use this Software and must immediately | |
| * delete and erase all copies of this Software within your control or possession. | |
| * Edge Impulse reserves all rights and remedies available to enforce its rights. | |
| * | |
| * Unless required by applicable law or agreed to in writing, the Software is | |
| * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, | |
| * either express or implied. See the License for the specific language governing | |
| * permissions, disclaimers and limitations under the License. | |
| */ | |
| class EiProfiler { | |
| public: | |
| EiProfiler() | |
| { | |
| reset(); | |
| } | |
| void reset() | |
| { | |
| timestamp = ei_read_timer_ms(); | |
| } | |
| void report(const char *message) | |
| { | |
| ei_printf("%s took %llu\r\n", message, ei_read_timer_ms() - timestamp); | |
| timestamp = ei_read_timer_ms(); //read again to not count printf time | |
| } | |
| private: | |
| uint64_t timestamp; | |
| }; | |