#include #include #include #include #ifdef _WIN32 #include #include void dump_virtual_memory_use() { PROCESS_MEMORY_COUNTERS_EX pmc; GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS *) &pmc, sizeof(pmc)); printf("process virtual memory=%zu KB\n",pmc.PrivateUsage/1024 ); } #elif defined(__linux__) #include void dump_virtual_memory_use() { char cmd_line[128]; snprintf(cmd_line, sizeof(cmd_line), "cat /proc/%d/status | grep VmPeak", getpid()); system(cmd_line); } #endif int main (int argc, char *argv[]) { MYSQL *mysql; MYSQL_STMT *stmt; mysql = mysql_init(NULL); if (!mysql_real_connect(mysql, "127.0.0.1", "root", "", "mysql", 3306, NULL, 0)) { fprintf(stderr, "can't connect to server"); exit(1); } stmt= mysql_stmt_init(mysql); mysql_stmt_prepare(stmt, "select repeat('a',5000)", -1); for (int i= 0; i < 1000000; i++) { mysql_stmt_execute(stmt); mysql_stmt_store_result(stmt); mysql_stmt_reset(stmt); if (i % 10000 == 0) { printf("i=%d\n", i); dump_virtual_memory_use(); } } mysql_stmt_close(stmt); mysql_close(mysql); return 0; }