상용 컴파일러를 사용하면 tar같은 명령어도 더 빨라지나요???

xoduddk123의 이미지

안녕하세요

임베디드 ARM 환경에서 tar명령어로 240M정도 용량의 압축파일을 해제하고있습니다.

파일의 총갯수는 2만개 정도 됩니다.

여기서 압축을 풀떄 사용하는 tar명령어를 툴체인을 다운받아서 크로스컴파일한 tar 명령어를 사용하고있습니다.

그런데 압축을해제하다보면 시간이 거의 7분가량 걸리는데

이러한 tar 명령어를 일반적으로 사용하는 크로스컴파일러 툴체인말고

상용 컴파일러를사용하면 이러한 작업을 더빠르게할수있나요 ??

이러한 작업을 더 빠르게 할수있따면 몇%나 성능의 향상을 가질수있나요 ??

익명 사용자의 이미지

tar 명령의 특성을 고려해 보면 CPU 사용보다 IO 작업에 시간이 많이 소요될 것으로 생각합니다.
그렇다면 상용 컴파일러를 사용한다고 한들 거의 차이가 없을 것으로 예상해 봅니다.
IO 작업 시간을 줄이려면 (읽는 속도도 그렇겠지만) 쓰는 속도가 빠른 매체를 쓰는 것이 답이 되겠지요...
특정 매체에 최적화된 파일 시스템을 사용하는 것도 도움이 될 확률이 크겠구요...

simminjo의 이미지

윗분 말씀대로
tar 압축 작업시에 zip알고리즘 적용시간을 제외하고는 디스크 액세스 타임이 주로 소모될것으로 생각됩니다.
임베디드 디바이스의 낸드 플래시 혹은 sd카드의 write 스피드가 높은 녀석을 사용하시는것이 더 체감되지 않을까요?

---------------------------------------------------------------
Opensource에 기여하는 것이 꿈입니다.
내가 만든 코드를 모두가 사용할 때 까지~

mirheekl의 이미지

저도 디스크 I/O에 한표. 아마 그 문제가 맞을겁니다. 이외에..

- 실제로 압축이 적용된 파일을 사용하는 경우, 혹시라도 압축해제 연산이 너무 느려서 디스크 I/O보다 늦은 압축해제속도가 나타난다면, 압축률을 낮추는 것이 도움이 될 수 있습니다.
- 디스크 I/O보다 압축해제가 늦은데도 멀티코어 활용이 제대로 되지 않는 상태라면 복수의 압축해제 프로세스를 한번에 돌리는 것이 도움이 될 수 있습니다. (싱글 환경이라면 패스.)
- 작은 파일이 너무 많아서 문제가 생긴다면 디스크 버퍼링에 관한 환경설정 등으로 개선할 수도 있습니다.
- 꼭 필요한 부분만 먼저 해제한 뒤에 나머지는 백그라운드로 천천히 해제하는 방법도 경우에 따라선 사용할 수 있겠네요.
- 데이터 내용이 매번 크게 변하지는 않는다면 변경된 부분만 다운로드하는 형태로의 시스템 형태의 개선을 고려해볼 수도 있습니다. 데이터가 완전하다는 보장을 받는게 골치아파지겠지만..

등등등..

--

babbab의 이미지

임베디드에선 싱글 코어래서 빨라지진 않겠지만. (싱글 코어라 가정안에서)
만약 tar가 압축을 해서 gzip을 사용한다면 gzip 자체가
싱글쓰레드래서 속도가 느리다 하더군요.
멀티쓰레드 gzip버젼인 pigz란 프로그램이 있는데 멀티코어에서
tar랑 같이쓰면 속도가 많이 붙는 다라고 하네요.

http://www.zlib.net/pigz/

설정은 tar에서 -I 옵션을 사용하라고 하네요.
아니면 프로그램을 gzip으로 rename하던가

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.