zirzirrrrr’s diary

日常の蓄積とかなんか

sedで社会性フィルタ

sedの-fオプションってどうやって使うんだっけって思ったので書いておく.

まずはじめにこんなファイルを作る.

Sociality_filter.txt

s/死ね/にゃーん/g
s/疲れた/にゃーん/g
s/なんであいつのために俺が苦労しないといけないんだ/にゃーん/g
s/けんきうしつ/にゃーん/g

これをこうしてこうじゃ

$ echo "まじで疲れた.なんであいつのために俺が苦労しないといけないんだ,死ね!!" | sed -f Sociality_filter.txt
まじでにゃーん.にゃーん,にゃーん!!

C/C++において処理時間測定にtime()なんか使うな

time()の戻り値は秒単位であり,また実時間の測定のみである.

実時間の測定を行いたいならgettimeofdayを,プロセス時間とシステム時間の測定を行いたいならgetrusageを用いること. マイクロ秒単位までの測定を行える.

以下コピペ用

実時間測定gettimeofday

/* gettimeofday_sample.c */

#include <stdio.h>
#include <sys/time.h>

int main(void)
{
    struct timeval stert_real_time, end_real_time;

    gettimeofday(&stert_real_time, NULL);

    /* 処理 */

    gettimeofday(&end_real_time, NULL);

    printf("real\t%lfs\n", (end_real_time.tv_sec - stert_real_time.tv_sec) + (end_real_time.tv_usec - stert_real_time.tv_usec)*1.0E-6);

    return 0;
}

プロセス・システム時間測定getrusage

/* gettimeofday_sample.c */

#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>

int main(void)
{
    struct rusage start_resource_usage, end_resource_usage;

    getrusage(RUSAGE_SELF, &start_resource_usage);

    /* 処理 */

    getrusage(RUSAGE_SELF, &end_resource_usage);

    printf("user\t%lfs\n",
        (end_resource_usage.ru_utime.tv_sec  - start_resource_usage.ru_utime.tv_sec) +
        (end_resource_usage.ru_utime.tv_usec - start_resource_usage.ru_utime.tv_usec)*1.0E-6);
    printf("sys\t%lfs\n",
        (end_resource_usage.ru_stime.tv_sec  - start_resource_usage.ru_stime.tv_sec) +
        (end_resource_usage.ru_stime.tv_usec - start_resource_usage.ru_stime.tv_usec)*1.0E-6);

    return 0;
}