어떻게 파일을 읽어야 속도가 더 빠를까요?

dltkddyd의 이미지

파일을 열어서 한자씩 읽어내는 것과 파일을 한 줄씩 열어서 읽는 것 중에 어떤 것이 더 빠를까요?

dltkddyd의 이미지

상당히 건방진 자세가 아니실지. 이거 댁게 아닌 것으로 아는데, 꼭 지것처럼 말씀을 하시네. 시건방지셔. 그리고 다른 방식으로 해결해서 위의 글 별로 도움이 안되겠네요.

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

익명 사용자의 이미지

여긴 사람들이 모인 커뮤니티입니다. 무성의한 질문 하나 띡 던져 놓고 아님 말고 하는, 여기 사람들을 무료 자판기 취급하는 당신 태도가 틀려먹은 겁니다.

겉으로야 숨기고 있어도, 남성 개발자들을 무슨 오타쿠 비슷한 쓰레기 취급하며 통으로 경멸하는 시선이 처음부터 기저에 깔려있었으니 당연 마찰이 일어나지요.

얼마나 잘난 분인지는 모르겠지만, 좀 쓴 소리 들었다고 바로 반말 짓거리 나오는 사람됨이야 더 말할 것도 없겠네요. 여기 사람들이라고 성인들은 아니지만, 당신한테 그런 취급 받을 이윤 없네요. 그냥 딴 곳으로 가시죠. 분란 그만 일으키고.

jick의 이미지

(냉무)

익명 사용자의 이미지

네 저도 똑같이 보이나 보군요. 알려주셔서 고맙습니다.

emptynote의 이미지

저야 tunecolor 님의 행보를 알고 있지만 다른분들도 알고 있다 보장 못합니다.

그래서 생뚱 맞게 보여질 수 있습니다.

그리고 조금 너그로워 지셨으면 합니다.

호기심 많은 초짜 시절에는 다 비슷하지 않나요?

힘들게 지식을 얻는 과정을 걸처야 질문자에게 요구되는 자세에 대해서도 고민을 할 수 있지 않을까 합니다.

저분은 아직 힘들게 지식을 얻는 과정을 못 겪은 "초보자" 이십니다.

dltkddyd의 이미지

이 분도 하지도 않은 말을 했다고 우기는군요. 반말 한 적이 없습니다. 난독증은 아니시죠? 맨 위에 반말 했다는 증거를 대보시죠. 그리고 그쪽 말하는 수준으로 봐서는 자판기 수준도 안되보이는군요. 자판기 수준이라도 되면 이런 식으로 말하지는 않을 겁니다. 그리고 자판기 음료나 커피 별로 좋아하지 않습니다. 내려먹는 커피가 진짜 커피죠.

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

익명 사용자의 이미지

첫 답변도 그렇고 좀 이상한 생각이 들어서 발자취를 검색해 보았습니다.
그러고나니 첫번째 답변을 다신 분이 왜 그런건지 약간 이해가 되는 듯 합니다.

첫번째 답변 다신 분이 좀 친절하지 않은 답변이지만 나름 질문자의 질문에 성의있게 답변하신 것 입니다.
대충 링크 들어가 보니 여러가지 방식으로 구현한 read/write 소스와 성능 테스트 결과 인 듯 합니다.
(뭐. 궁금하진 않아서 자세히 보지는 않았습니다.)

초보자가 보고 이해하기는 매우 힘들겠지만 질문하신 분도 슬슬 저런 문서를 직접 찾아 보거나 읽고 이해해야 하는 수준이 되어야 하지 않느냐라는 의중이 포함되어 있는 듯 합니다.

쓸데없는 참견일 수 있지만 질문하신 분도 프로그래밍 언어에 관심이 있으시다면 궁금한 내용에 대한 단순한 답만 구하는 것 보다 조금 깊게 공부해 보는게 낫지 않을까 합니다.
첫번째 답변하신 분의 링크에도 들어 있지만 파일을 읽는 방법도 여러가지가 있기 때문에 질문자가 파일을 읽을 때 어떤 방법을 사용하였느냐에 따라서 답변해야 하는 내용이 달라집니다.
질문하신 분이 정확히 질문하셔야 답변하는 사람이 제대로 답변할 수 있습니다.

또한. 같은 내용이라 하더라도 초보자가 질문하느냐 숙련자가 질문하느냐에 따라 관심사(물론 질문 내용에 포함되어 있기도 합니다만)가 달라지기 때문에 질문에 맞는 답변도 달라지게 됩니다.
(사실 저 링크와 관련된 내용은 초보자보다는 숙련자를 위한 답변에 해당됩니다.)

프로그래밍언어를 한창 배우는 중이라면 일단 책 2~3권 정도는 읽어 보는 편이 나을 거 같습니다.
Q&A로 배우는 것은 단편적인 지식밖에 얻지 못하기 때문에 오히려 기초가 부족해 질 수 있습니다.

익명 사용자의 이미지

그냥 무시하고 답변을 안달면 될것을
왜 굳이 똥통을 발로 차서 똥물을 뒤집어 쓰십니까.

질문자 아이디 보면 몰라요?
애써 답변해주고 괜히 욕먹죠.

이런사람에게 오냐오냐 답글달아주는 사람들이 문제입니다 쯧쯔

kukyakya의 이미지

+1

익명 사용자의 이미지

직접 검색해보라는 말 수십 번은 들어도 이런 걸 올리는 거 보면, 검색해도 아마 못 읽는 거지 싶네요. 영어가 안된다던지, 읽어도 이해가 안된다던지.

애써 링크 달아줘도 아무 소용 없지 싶습니다. 아래처럼 친절히 떠먹여 줄 생각이 아니면..

문제는 이렇게 추상적인 질문에는 답 해주는 사람이 아무리 잘 해줘도 결국 어딘가 부정확할 수 밖에 없다는 거... 4096바이트로 읽는 게 제일 빠를리가 없잖아요? ㅎㅎ 구체적인 상황에 따라 다른 거지.. 그래서 벤치마크 하라는 거고.

기본이 안된 인간들이 어디서 주워들은 거 이해도 못하고 들고 와서 끝까지 우기던 기억들이 떠올라 급 피곤해지네요..

bushi의 이미지

"4096 으로 읽는게 제일 빠를리가 없잖아요"
+ 1

익명 사용자의 이미지

4096 kbytes 면 타당할 듯....
임베디드면 몰라도 요새 PC 환경의 하드 대역폭으로 볼때 수 ~ 수십 메가를 한번에 읽어드리는 편이 빠르겠죠.
가령 SSD? 라면?

dltkddyd의 이미지

남이 하는 말을 자기 식대로 넘겨짚어 말하는 익명의 수준 알만하군요. 그런 식으로 해서 무슨 프로그래밍을 하겠다는 것인지 모르겠네. 그런 태도는 소스 분석하는 데에도 영향을 미칩니다. 소스는 읽는 것 자체가 중요한 것이 아니라, 그 소스 속에 담긴 프로그래머의 의도가 상당히 중요합니다. 자기 식대로 이상한 전제를 깔아놓고 해석하는 버릇으로 프로그램을 짠다면 좋은 프로그램 만드는 것은 일찌감치 포기하는 것이 좋을 줄로 압니다. 그리고 질문 올리내 마내 하는 이상한 말은 님이 먼저 했고, 그건 남의 자유에 대해 주제 넘게 말한 것이죠. 그리고 반말을 했는지 모르겠지만 반말도 표준어입니다. 아주 저수준이셔.

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

dltkddyd의 이미지

네가 한 말이 아닙니다. 그게 사실이 아니라면 밑에 inviolable님에게 물어보시죠. 아마 이 분 난독증이것 같군요. 반말 하지도 않았는데, 반말 했다며 괜히 열네고. 별 도움 받은 적도 없는데, 굉장한 것을 언제 알려준 사람처럼 행동하고. 쯧쯧쯧.... 참 불쌍합니다. 쓸데없는 말로 계속 도배질 해서, 커뮤니티 질서를 상당히 어지럽히는군요.

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

inviolable의 이미지

유닉스 고급 프로그래밍이라는 책인데요. 일반적으로는 문자 한개씩 읽어들이는거보다 무더기로 읽어들이는게 더 빠릅니다.

예를 들어 윈도우 운영체제에서도 디스크에서 읽어들일 때 1바이트 단위가 아닌 페이지 단위로 읽어들이는게 다 이유가 있지요.

책에보니 4096바이트 씩 읽어들이는게 제일 빠르다고 나와있네요. 그 이상의 버퍼 크기에서는 속도가 별로 향상되지 않는답니다.

dltkddyd의 이미지

네, 하나씩 읽는 것보다 통째로 읽는 것이 빠르다고 하더군요. 4096바이트 씩 읽어들이는 게 제일 빠르다는 것은 모르고 있었는데. 답변 감사드립니다. fread로 4096바이트 씩 읽어도 괜찮겠군요.

본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.

cinsk의 이미지

fread(3)/fwrite(3)는 buffered IO를 쓰기 때문에 block 단위로 읽던 글자 단위로 읽던 별 상관 없습니다.

read(3)/write(3)의 경우는 block 단위로 읽는 것이 좋은데, block 단위는 stat(2)/fstat(2)에서 얻어올 수 있습니다. (st_blksize)

jeemin1의 이미지

ㅇㅋ 자체 블랙리스크 추가 완료 ㅋㅋ

익명 사용자의 이미지

자꾸 아이디를 바꾸시네요 ㅎㅎ
tunecolor -> friday -> dltkddyd

익명 사용자의 이미지

부끄러운줄은 아는가 보네
아이디 이리저리 바꾸면서 세탁을 시도하는 걸 보니
그런데 아이디를 아무리 세탁해도 사람이 문제라서 소용없을 듯