728x90
반응형

benchmarking 3

Python보다 C ++에서 stdin에서 행을 읽는 것이 훨씬 느린 이유

질문 : Python보다 C ++에서 stdin에서 행을 읽는 것이 훨씬 느린 이유는 무엇입니까? Python과 C ++를 사용하여 stdin의 문자열 입력 행을 비교하고 싶었고 C ++ 코드가 동등한 Python 코드보다 훨씬 느리게 실행되는 것을보고 충격을 받았습니다. 내 C ++가 녹슬고 아직 Pythonista 전문가가 아니기 때문에 내가 뭘 잘못하고 있는지 또는 뭔가를 오해하고 있는지 알려주세요. (TLDR 답변 : cin.sync_with_stdio(false) 문을 포함하거나 fgets 사용하십시오. TLDR 결과 : 내 질문의 맨 아래로 스크롤하여 표를보십시오.) C ++ 코드 : #include #include using namespace std; int main() { string in..

Python 코드가 함수에서 더 빠르게 실행되는 이유

질문 : Python 코드가 함수에서 더 빠르게 실행되는 이유는 무엇입니까? def main(): for i in xrange(10**8): pass main() Python의이 코드는 다음에서 실행됩니다 (참고 : 타이밍은 Linux의 BASH에서 시간 함수로 수행됩니다.) real 0m1.841s user 0m1.828s sys 0m0.012s 그러나 for 루프가 함수 내에 위치하지 않으면 for i in xrange(10**8): pass 그런 다음 훨씬 더 오랜 시간 동안 실행됩니다. real 0m4.543s user 0m4.524s sys 0m0.012s 왜 이런거야? 답변 전역 변수보다 지역 변수를 저장하는 것이 더 빠른 이유를 물을 수 있습니다. 이것은 CPython 구현 세부 사항입니다...

Java에서 2 * (i * i)가 2 * i * i보다 빠른 이유

질문 : Java에서 2 * (i * i)가 2 * i * i보다 빠른 이유는 무엇입니까? 다음 Java 프로그램은 실행하는 데 평균 0.50 초에서 0.55 초가 걸립니다. public static void main(String[] args) { long startTime = System.nanoTime(); int n = 0; for (int i = 0; i < 1000000000; i++) { n += 2 * (i * i); } System.out.println((double) (System.nanoTime() - startTime) / 1000000000 + " s"); System.out.println("n = " + n); } 2 * (i * i) 를 2 * i * i 바꾸면 실행하는 데 0...

728x90
반응형