Index: src/benchmark/create_cfaCor.c
===================================================================
--- src/benchmark/create_cfaCor.c	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
+++ src/benchmark/create_cfaCor.c	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
@@ -0,0 +1,18 @@
+#include <coroutine>
+#include <stdlib.h>
+#include <stdio.h>
+
+coroutine MyCoroutine {};
+void main(MyCoroutine * this) {}
+
+int main(int argc, char* argv[]) {
+	size_t n = 1000000;
+	if( argc > 2 ) return 1;
+	if( argc == 2 ) {
+		n = atoi(argv[1]);
+	}
+	printf("%lu\n", n);
+	for (size_t i = 0; i < n; i++) {
+		MyCoroutine m;
+	}
+}
Index: src/benchmark/create_cfaThrd.c
===================================================================
--- src/benchmark/create_cfaThrd.c	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
+++ src/benchmark/create_cfaThrd.c	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
@@ -0,0 +1,18 @@
+#include <thread>
+#include <stdlib.h>
+#include <stdio.h>
+
+thread MyThread {};
+void main(MyThread * this) {}
+
+int main(int argc, char* argv[]) {
+	size_t n = 1000000;
+	if( argc > 2 ) return 1;
+	if( argc == 2 ) {
+		n = atoi(argv[1]);
+	}
+	printf("%lu\n", n);
+	for (size_t i = 0; i < n; i++) {
+		MyThread m;
+	}
+}
Index: src/benchmark/create_pthrd.c
===================================================================
--- src/benchmark/create_pthrd.c	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
+++ src/benchmark/create_pthrd.c	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
@@ -0,0 +1,33 @@
+#include <pthread.h>
+#include <err.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+static void *foo(void *arg) {
+    return arg;
+}
+
+int main(int argc, char* argv[]) {
+	size_t n = 1000000;
+	if( argc > 2 ) return 1;
+	if( argc == 2 ) {
+		n = atoi(argv[1]);
+	}
+	printf("%lu\n", n);
+
+	for (size_t i = 0; i < n; i++) {
+		pthread_attr_t attr;
+		if (pthread_attr_init(&attr) < 0) {
+			return 1;
+		}
+		if (pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) < 0) {
+			return 1;
+		}
+		pthread_t thread;
+		if (pthread_create(&thread, &attr, foo, NULL) < 0) {
+			return 1;
+		}
+	}
+	pthread_exit(NULL);
+	return 0;
+}
Index: src/benchmark/create_uCor.cpp
===================================================================
--- src/benchmark/create_uCor.cpp	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
+++ src/benchmark/create_uCor.cpp	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
@@ -0,0 +1,19 @@
+#include <cstdlib>
+#include <cstdio>
+
+_Coroutine MyCor {
+	void main() {}
+};
+
+int main(int argc, char* argv[]) {
+	size_t n = 1000000;
+	if( argc > 2 ) return 1;
+	if( argc == 2 ) {
+		n = atoi(argv[1]);
+	}
+	printf("%lu\n", n);
+	for (size_t i = 0; i < n; i++) {
+		MyCor m;
+	}
+	return 0;
+}
Index: src/benchmark/create_uTask.cpp
===================================================================
--- src/benchmark/create_uTask.cpp	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
+++ src/benchmark/create_uTask.cpp	(revision af5c204ab6dfd6d34a6eb3258329f84bae858722)
@@ -0,0 +1,19 @@
+#include <cstdlib>
+#include <cstdio>
+
+_Task MyThread {
+	void main() {}
+};
+
+int main(int argc, char* argv[]) {
+	size_t n = 1000000;
+	if( argc > 2 ) return 1;
+	if( argc == 2 ) {
+		n = atoi(argv[1]);
+	}
+	printf("%lu\n", n);
+	for (size_t i = 0; i < n; i++) {
+		MyThread m;
+	}
+	return 0;
+}
