#include <chrono>
#include "datas.hpp"
int main(void) {
auto st = std::chrono::system_clock::now();
double w = 1.0;
double b = 1.0;
for (int _ = 0; _ < 100000; _++) {
for (int i = 0; i < 442; i++) {
auto x_i = x[i];
auto y_i = y[i];
auto y_hat = x_i * w + b;
auto err = y_i - y_hat;
auto w_rate = x_i;
w = w + w_rate * err;
b = b + 1 * err;
}
}
printf("%lf %lf\n", w, b);
auto ed = std::chrono::system_clock::now();
std::chrono::duration<double> spent = ed - st;
printf("%lf\n", spent.count());
return 0;
}
이건 C++
Datas.hpp 에 데이터 있음
const startTime = new Date().getTime();
let w = 1.0;
let b = 1.0;
for (let i = 1; i <= 100000; i++) {
for (let i = 0; i < x.length; i++) {
const x_i = x[i];
const y_i = y[i];
const y_hat = x_i * w + b;
const err = y_i - y_hat;
const w_rate = x_i;
w = w + w_rate * err;
b = b + 1 * err;
}
}
const endTime = new Date().getTime();
console.log(w + ", " + b);
console.log(endTime - startTime);
이게 문제의 자스
데이터는 C++이랑 같고 위에 써놨는데 너무길어서 안올림
알고리즘은 차이가 없는데?
시플플 for문 안에서 변수선언하는거 퍼포먼스잡아먹는거아니냐? 저런것도 컴파일러가 다처리해주나
밖에서 선언해봤는데 속도차이없음
해당 댓글은 삭제되었습니다.
수정해보겠음 근데 결과 똑같이 나오는거 봐서 차이 없는거같은데
이름 다르게 해봐도 차이 없음
Chrono 라이브러리의 오버헤드인가
또 그럴까 해서 C의 clock() 으로도 해봤는데 차이 없음
모두자스하세요
아이티뱅크로 오시면 쉽게 알려드립니다!