Posts

Showing posts from June, 2019

Measure time execution in a C program

There are many ways to measure time in a C program. I use  clock_gettime () since it supports high resolution clock which we can count on. Header #include <time.h> Time storage structure struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }; Function int clock_gettime ( clockid_t clk_id, struct timespec *tp); is used to retrieve the time of the specified clock clk_id. There are several kind of clock ID but the two of them may be used the most. CLOCK_REALTIME : System-wide clock that measures real (i.e., wall-clock) time. CLOCK_MONOTONIC : Clock that cannot be set and represents monotonic time since some unspecified starting point. On Linux, that point corresponds to the number of seconds that the system has been running since it was booted. Below is an example of using the function. #include <stdio.h> #include <time.h> struct timespec time_subtract ( struct timespec t...

Python application crashes without throwing any exception

PROBLEM: Recently I have written a flask application and encountered a problem that the application randomly dies. My application is to provide a simple REST API to query some personal information. It serves both HTTP and HTTPS. I run the app by python command, just like below python my_app.py (Yeah, I know that command is for development only and should not be used in production) Everything went well for a couple of tests, til the rainy time, literally, there was a heavy rain outside. I sent a HTTPS request using postman and the above command just stopped. I tried several times, the issue did not happen permanently. Sometimes it crashed, sometimes it went well. There was not any information dumping out to screen. The command was just completed with a lame terminal's prompt. HOW I DEAL WITH IT: I was just a novice in python and was expecting for an exception that would tell me the exact reason why my application had been crashed. Well, there was nothing. I goog...