常々思うこと。
この世界は、私の認識によって成り立っている。
私が認識できないもの、すなわち知覚できないもの、知識として得られない有象無象は
そこに存在していないことと何一つ変わらない。
私は、私の死後の世界を認識することはできない。
その時、私という自我が失われることを、知識として身につけているからだ。
したがって、私の死後の世界は、私にとって存在しないものである。
ゆえに、私が死ぬことはない。
永遠に生き続けねばならないのだ。
何処に矛盾があるだろうか。
常々思うこと。
この世界は、私の認識によって成り立っている。
私が認識できないもの、すなわち知覚できないもの、知識として得られない有象無象は
そこに存在していないことと何一つ変わらない。
私は、私の死後の世界を認識することはできない。
その時、私という自我が失われることを、知識として身につけているからだ。
したがって、私の死後の世界は、私にとって存在しないものである。
ゆえに、私が死ぬことはない。
永遠に生き続けねばならないのだ。
何処に矛盾があるだろうか。
C++: Mac環境でコア単位のCPU使用率を測定する
#include <stdio.h>
#include <unistd.h>
#include <mach/mach_host.h>
#include <mach/processor_info.h>
#include <iostream>
using namespace std;
class CpuUsage {
public:
CpuUsage(int core): core_(core) {
prev = updated_ticks_(core);
}
float get() {
Ticks t = updated_ticks_(core_);
unsigned long long int used = t.used() - prev.used();
unsigned long long int total = t.total() - prev.total();
prev = t;
return (float)used / (float)total * 100.0f;
}
private:
struct Ticks {
unsigned long long int usertime;
unsigned long long int nicetime;
unsigned long long int systemtime;
unsigned long long int idletime;
unsigned long long int used() { return usertime + nicetime + systemtime; }
unsigned long long int total() { return usertime + nicetime + systemtime + idletime; }
} prev;
int core_;
Ticks updated_ticks_(int core) {
unsigned int cpu_count;
processor_cpu_load_info_t cpu_load;
mach_msg_type_number_t cpu_msg_count;
int rc = host_processor_info(
mach_host_self( ),
PROCESSOR_CPU_LOAD_INFO,
&cpu_count,
(processor_info_array_t *) &cpu_load,
&cpu_msg_count
);
if (rc != 0) {
printf("Error: failed to scan processor info (rc=%d)\n", rc);
exit(1);
}
if (core < 0 || cpu_count <= core) {
printf("Error: invalid core number: %d\n", core);
exit(1);
}
unsigned long long int usertime = cpu_load[core].cpu_ticks[CPU_STATE_USER];
unsigned long long int nicetime = cpu_load[core].cpu_ticks[CPU_STATE_NICE];
unsigned long long int systemtime = cpu_load[core].cpu_ticks[CPU_STATE_SYSTEM];
unsigned long long int idletime = cpu_load[core].cpu_ticks[CPU_STATE_IDLE];
Ticks t = {usertime, nicetime, systemtime, idletime};
return t;
}
};
int main() {
CpuUsage a(0), b(1), c(2), d(3);
sleep(1);
printf("%6.2f, %6.2f, %6.2f, %6.2f\n", a.get(), b.get(), c.get(), d.get());
sleep(1);
printf("%6.2f, %6.2f, %6.2f, %6.2f\n", a.get(), b.get(), c.get(), d.get());
sleep(1);
printf("%6.2f, %6.2f, %6.2f, %6.2f\n", a.get(), b.get(), c.get(), d.get());
return 0;
}
(need improvement)
78.00, 72.73, 85.00, 72.00 78.00, 57.00, 72.00, 56.57 82.00, 83.00, 90.00, 88.00