C언어로 짜여진 프로그램 안에 어셈블리언어를 넣으면 실행 속도가 빨라지나요?

Zpdlzpdldpa의 이미지


OS같은 시스템 프로그램에서
C언어와 어셈블리 언어가 섞여져있는 코드를 봤습니다.
그 이유는 어셈블리 언어가 하드웨어를 직접 제어할 수 있기 때문이라고 알고 있었는데
혹시 실행 속도와도 관련이 있나요?

제 생각은
프로그램이 실행되기 전에
컴파일러가 C언어를 어셈블리로, 어셈블러가 어셈블리를 실행가능한 기계어로 번역해놓기 때문에
실행시간은 차이가 없다고 여겨집니다.
어차피 같은 기계어로 번역되어서 실행될테니까요.
번역 시간이야 빠르겠지요. C언어를 어셈블리로 번역하는 시간이 필요없으니까요.

제 생각이 맞는지 틀리는지 알고싶네요.
도움을 부탁드립니다.

snowall의 이미지

컴파일러보다 더 최적화된 어셈블리어 코드를 쓸 수 있는 사람이 작성한 코드라면 실행속도가 더 빨라지겠죠

요새는 컴퓨터 성능도 좋아서 유의미한 차이가 나지는 않을 것 같네요

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

왠만하면 컴파일러로 최적화된게 더 빠릅니다.

hyde1004의 이미지

잘 짜여진 코드라면, 어셈블리어가 좀 더 빠를 수도 있겠지요.

영어 작문을 한다고 할때
잘 만들어진 번역기가 있다면, 국문 --> 영문 번역을 통해 하는 것보다는
만약 영어를 잘 아는 사람이 영문장을 만드는게 좀 더 나은것 처럼요. (뉘앙스 측면에서요)

모지리의 이미지

암호화 관련된 코드들의 수행 시간을 보시면 어마 어마하다라고 느낄 정도로 차이납니다.

fm100의 이미지

대체로 성능면으로는 사람이 어셈으로 짜는거보다 컴파일러 최적화가 성능이 좋습니다.
일반적으로 OS 코드에서 볼 수 있는 어셈코드는 성능을 목적으로 한 것이 아니라 아키텍쳐 의존적인 부분들을 구현한 것이 많습니다.
리눅스 코드를 받아보시면, arch 아래에 있는 코드들이 주로 어셈 코드인것을 확인할 수 있습니다.

=================================================
Do the python !
=================================================

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.