반응형

C 66

어떻게 node.js가 c와 java보다 빠를 수 있습니까?node.js, c, java, python 비교 벤치마크

어떻게 node.js가 c와 java보다 빠를 수 있습니까?node.js, c, java, python 비교 벤치마크 저는 4개의 다른 언어로 10,000,000까지의 모든 소수를 계산하는 아주 간단한 벤치마킹 프로그램을 만들었습니다. (2.97초) - node.js (jav 스크립트) (4.4.5) (6.96초) - c(c99) (6.91초) - 자바(1.7) (45.5초) - 파이썬 (2.7) 위는 각각 평균 3회 실행, 사용자 시간 Node.js가 가장 빠르게 실행됩니다.이것은 두 가지 이유로 저에게 혼란스럽습니다. javascript는 변수에 대해 항상 이중 정밀도 플로트를 사용하는 반면 c와 java는 이 경우 (긴) 정수를 사용합니다.정수가 있는 수학은 더 빨라야 합니다. just in tim..

programing 2023.09.28

scanf를 사용하여 공백으로 구분된 숫자를 읽는 방법

scanf를 사용하여 공백으로 구분된 숫자를 읽는 방법 를 사용하여 공백으로 구분된 숫자(정수 유형)를 읽고 싶습니다.scanf()기능.다음 내용을 읽었습니다. C, 단일 입력 라인에서 여러 숫자 읽기(scanf?) 공백이 있는 스캔을 읽는 방법 별로 도움이 되지 않습니다. 공백을 구분 기호로 사용하여 숫자를 읽으려면 어떻게 해야 합니까?예를 들어.다음 번호를 입력합니다.2 5 7 4 3 8 18이제 저는 이것들을 다양한 변수에 저장하고 싶습니다.제발 도와주세요.기본적으로 스캔프에서 공백/입력으로 읽은 값이라고 생각합니다.정수를 인쇄하는 경우 '%d' 사이의 공백을 제공할 수 있습니다.다른 경우에도 마찬가지입니다. scanf("%d %d %d", &var1, &var2, &var3); 마찬가지로 쉼표로 ..

programing 2023.09.23

POSIX 실시간 신호를 사용하는 사람과 그 이유는?

POSIX 실시간 신호를 사용하는 사람과 그 이유는? 나는 솔직하지 않아요 정말 이해가 안 돼요.그 자료들을 다 읽었는데 사용 사례를 알 수가 없네요.signal()과 같은 장점들이 충분히 명확한 API에 대해 그렇게 많이 이야기하고 있지는 아닙니다.오히려 RT 신호는 사용자 공간을 의미하는 것 같지만 어떤 목적으로 생성됩니까?유일한 용도는 원시적인 IPC인 것처럼 보이지만 모든 것이 IPC의 형편없는 형태(예: 어색하고 제한된 정보, 특별히 효율적이지 않은 정보 등)임을 지적합니다. 그렇다면 그것들은 어디서 어떻게 사용되는 것일까요?우선 벤의 대답이 정확하다는 것을 주목하세요.제가 아는 한, POSIX에서 실시간 신호의 전체 목적은 AIO, 메시지 큐 알림, 타이머 만료 및 애플리케이션 정의 신호(내부..

programing 2023.09.23

시스템 가동 시간을 얻으려면 어떤 API를 호출해야 합니까?

시스템 가동 시간을 얻으려면 어떤 API를 호출해야 합니까? 리눅스 기반 시스템에서 실행되는 C 애플리케이션 내에서 시스템 가동 시간을 확보하고 싶습니다.uptime(1)을 호출하고 출력을 구문 분석하고 싶지 않습니다. 기본 C API가 존재하는 것으로 의심되는 C API를 호출합니다.그런 전화가 있는지 아는 사람이 있습니까, 아니면 업타임(1)은 단순히 wtmp에서 얻은 기록을 처리합니까?찾으시는 시스템 호출은 sysinfo()입니다. sys/sysinfo.h에 정의되어 있습니다. 서명은 int sysinfo(struct sysinfo *info)입니다. 커널 2.4 이후 이 구조는 다음과 같이 생겼습니다. struct sysinfo { long uptime; /* Seconds since boot *..

programing 2023.09.18

make (Linux)와 nmake (Windows)에 동일한 make 파일 사용

make (Linux)와 nmake (Windows)에 동일한 make 파일 사용 저는 make와 nmake를 통해 리눅스와 윈도우에서 각각 컴파일하고 싶은 간단한 C 프로그램(소스 파일 하나)이 있습니다.메이크 파일 하나로 가능성이 있습니까? 이런 생각을 해봤는데요. ifeq($(MAKE), nmake) // nmake code here else // make code here endif 안타깝게도 nmake는 이해하지 못하는 것 같습니다.ifeq, 그래서 저는 그걸 사용할 수 없습니다.작동하는 makefile을 가지고 있지만 결과가 매우 좋지 않습니다. hello: hello.c $(CC) hello.c 두 시스템 모두에서 작동합니다.문제는 각 컴파일러의 기본 동작에 따라 결과가 달라진다는 것입니다...

programing 2023.09.18

지정되지 않은 크기의 배열에 대한 포인터(*p)[]"C++에서는 불법이지만 C에서는 합법입니다.

지정되지 않은 크기의 배열에 대한 포인터(*p)[]"C++에서는 불법이지만 C에서는 합법입니다. 이것이 C++에서는 불법이라는 것을 방금 알았습니다. (그러나 C에서는 합법입니다.) #include #include #define ARRAY_LENGTH(A) (sizeof(A) / sizeof(A[0])) int accumulate(int n, const int (*array)[]) { int i; int sum = 0; for (i = 0; i < n; ++i) { sum += (*array)[i]; } return sum; } int main(void) { int a[] = {3, 4, 2, 4, 6, 1, -40, 23, 35}; printf("%d\n", accumulate(ARRAY_LENGTH(..

programing 2023.09.14

malloc()는 brk() 또는 mmap()을 사용합니까?

malloc()는 brk() 또는 mmap()을 사용합니까? c 코드: // program break mechanism // TLPI exercise 7-1 #include #include void program_break_test() { printf("%10p\n", sbrk(0)); char *bl = malloc(1024 * 1024); printf("%x\n", sbrk(0)); free(bl); printf("%x\n", sbrk(0)); } int main(int argc, char **argv) { program_break_test(); return 0; } 다음 코드를 컴파일할 때: printf("%10p\n", sbrk(0)); 경고 팁을 받습니다. format ‘%p’ expects a..

programing 2023.09.14

컴파일 시간 동안 공유 라이브러리가 필요한 이유는 무엇입니까?

컴파일 시간 동안 공유 라이브러리가 필요한 이유는 무엇입니까? 실행 파일의 컴파일 시간 동안 공유 라이브러리의 존재가 필요한 이유는 무엇입니까?공유 라이브러리는 실행 파일에 포함되지 않고 실행 중에 로드되기 때문에 컴파일 시간에는 필요하지 않습니다.아니면 제가 뭔가를 놓치고 있는 건가요? #include int addNumbers(int, int); //prototype should be enough, no? int main(int argc, char* argv[]){ int sum = addNumbers(1,2); printf("sum is %d\n", sum); return 0; } 저는.libfoo.so지금의 나의 dir에서 나는 그것의 이름을 로 바꿨습니다.libfar.so컴파일할 때 공유 lib..

programing 2023.09.14

C/C++에 들쭉날쭉한 어레이가 있습니까?

C/C++에 들쭉날쭉한 어레이가 있습니까? C나 C++에 들쭉날쭉한 배열 같은 것이 있습니까? 다음 내용을 컴파일할 때: int jagged[][] = { {0,1}, {1,2,3} }; 다음 오류가 발생합니다. error: 다차원 배열로 'expected' 선언은 첫 번째 차원을 제외한 모든 차원에 대한 경계를 가져야 합니다. CI에서는 포인터 배열을 사용합니다. 예를 들어 다음과 같습니다. int *jagged[5]; jagged[0] = malloc(sizeof(int) * 10); jagged[1] = malloc(sizeof(int) * 3); 등.여러 가지 방법이 있습니다.다른 방법은 다음과 같습니다. int jagged_row0[] = {0,1}; int jagged_row1[] = {1,2..

programing 2023.09.14

정수의 비트 변경

정수의 비트 변경 이 질문에는 이미 다음과 같은 답변이 있습니다. 단일 비트를 설정하고 지우고 전환하는 방법? (27개 답변) 닫힘8년 전에. 정수가 있습니다. int x = 50; 이진법으로, 그것은 00110010 네 번째(4번째) 비트를 프로그래밍 방식으로 변경하려면 어떻게 해야 합니까?숫자의 네 번째 비트는 네 번째 비트를 제외한 모든 곳에서 0의 값으로 OR을 적용하여 설정할 수 있습니다.이것은 다음과 같이 할 수 있습니다. x |= (1u

programing 2023.09.08
반응형