2008-09-18 2 views
47

나는 최근에 Haml과 놀았으며 결과 코드가 나에게 보이는 방식을 좋아합니다 ... 개발자. 나는 디자이너가 소비하거나 변경할 수 있다는 것에 대해서 너무 걱정하지 않는다. 우리는 작은 팀이다.트래픽이 많은 사이트에 haml이나 erb 또는 erubis를 사용해야합니까?

즉, 우리가 믿는 프로젝트에서 작업을 시작하면 꽤 많은 트래픽이 생성됩니다 (누가 그렇지 않습니까?). 나는 단지 햄에 대해 모른다는 것에 관심이 있습니다. haml이 할 수없는 erb가있을 수 있습니까? haml은 프로젝트가 성장함에 따라 부정적인 영향을 미칩니 까? 고려해야 할 다른 것들이 있습니까?

마침내 ... 함부르크는 어떻게 에르 누스와 속도를 어떻게 비교합니까? 나는 그것이 아마 erb와 eruby를 능가하는 것을 본다 ...

고마워!

+0

개인적으로는 확장 성 걱정 것입니다. 결국 데이터베이스는 뷰 렌더링과 비교할 때 대부분의 시간이 걸린다. (적어도 지금까지 내가 본 것만 큼.) –

+3

플립 사이드 (flipside)에서 문제가되는 시점에 대해서만 염려하면 템플릿 언어가 너무 느리고 그 언어로 작성된 수많은 토픽이 남아 있다는 결론을 내면 무엇을합니까? – casey

+0

좋은 지적 케이시 - 템플릿은 변환 할 웹 앱 중 가장 어려운 부분입니다. – thethinman

답변

1

저는 사전 컴파일 된 템플릿에서 erubis를 개인적으로 추천합니다.

특히 동적 템플릿을 사용할 필요가없는 경우 그런 다음 가장 큰 속도 저하는 루비가 루비를 구문 분석 할 수있는 속도로 제한됩니다.

변경된 소스 템플릿을 모니터링하고 사용하지 않을 때 끌 수있는 변경 사항을 자동 컴파일하는 작은 cron 작업을 설정했을 것입니다.

한 번 컴파일하고 여러 번 사용하십시오. 당신은 속도에 대해 정말 관심이 있다면 (erubis과 동일한 제작자)

아, 그리고, 텐진

http://www.kuwata-lab.com/tenjin/rbtenjin-examples.html

+0

Rails 3에서 Tenjin을 사용하는 방법을 알고 있습니까? – Green

4

나는 그것이 전적으로 개인적인 취향과 유지 보수의 문제라고 생각도 좀 가치가있을 수 있습니다. 나에게 Haml은 템플릿을 더 쉽게 읽고 이해할 수있게 해 주며 성능은 매우 만족 스럽습니다. 결국, 템플릿 언어는 데이터베이스 쿼리, 뷰 또는 객체 캐싱 등의 최적화 가능성이 희박합니다.

그러나 ERb 템플릿의 경우 더 나은 성능을 얻을 수 있습니다 erubis를 사용한다면 기본적으로 무료입니다.

27

레일스를 사용하는 경우, Haml과 erubis의 성능 차이는 무시할 수 있습니다. 어쨌든 템플릿은 첫 번째 히트 이후에 컴파일되고 캐시됩니다. 이것을 조각 및 페이지 캐싱과 결합하면 뷰가 응용 프로그램의 성능 병목 현상이되지 않도록 안심할 수 있습니다.

자신에게 묻고 싶은 질문은 다음과 같습니다. Haml을 쓰고 싶습니까? 그것은 당신을 더 생산적이게합니까? 그런 다음 더 쉽게 결정할 수 있습니다.

45

Haml 암석. 나는 최근의 실적 수치를 보지 못했지만 요즘과 거의 비슷합니다. 못생긴 모드를 켜면 꽤 빠를 수도 있다고 생각합니다. (꽤 들여 쓰기를 방지합니다.) 우리는 Haml과 하루에 280 만 페이지 뷰를하고 있습니다. 2009 http://github.com/nex3/haml/tree/master/test

업데이트 11월

나단 (HAML의 주요 개발자) 자신의 블로그에 published some Haml 2.2 benchmarks :

는 HAML 소스 트리에서 점검 인 벤치가있다.

  • 정상 (꽤 인쇄) 모드 = ERB에 비해 2.8 배 느린

ERB-

  • 미운 모드 (꽤 탭이 추가되지) = 같음 : 당신은 거기하지만 짧은 정확한 숫자를 볼 수 있습니다 이니셜 라이저 또는 환경 파일에 Haml::Template::options[:ugly] = true을 넣어 추한 모드를 활성화 할 수 있습니다. 못생긴 모드는 실제로 못생긴 것이 아니라 결과 HTML이 실제로 ERB보다 훨씬 더 예쁘다는 점에 유의하십시오. 이는 들여 쓰는 것이 좋지 않습니다.

  • +1

    번호와 제공된 벤치 마크가 상당히 인상적입니다. 그리고 추한 모드에 대해서 알아두면 좋습니다. – nXqd

    +11

    HAML이 기본적으로 프로덕션 환경에서이 모드를 활성화하기 때문에 초기화 프로그램에서 프로덕션에'ugly' 모드를 설정할 필요가 없습니다. – Voldy

    0

    글쎄, Haml 성능은 각 릴리스마다 개선되고 있습니다. 그것은 현재 시간에 수용 가능한 곳입니까? 그것은 당신이 결정하기위한 것입니다 (저는 "예"라고 말하려고 합니다만, 그것은 당신의 필요에 따라 선택합니다). 템플리트와 가독성이 마음에 들면 성능 저하 (무시할 수 있음)가 실제로 결정의 최종 요소가되어야합니다.

    Haml과 함께 사용해야하는 다른 도구 중 하나는 make_resourceful입니다.이 도구는 Haml (Nathan Weizenbaum)의 관리자가 Rails 앱에서 많은 RESTful 작업을 단순화하는 또 하나의 보석입니다.

    Haml (및 m_r)에 대해 더 구체적인 질문이있는 경우 Nathan이 답변하는 것이 더 행복 할 것이라고 확신합니다. 그는 Jabber/XMPP와 이메일을 통해 연락 할 수 있습니다. 그의 연락처 정보는 here입니다.

    2

    haml이 코딩의 관점에서 어떻게 작동하는지 알고 싶다면 템플릿 엔진의 성능에 대해 걱정하지 마십시오. (비록 당신이 지적했듯이, 이제는 빠릅니다.) 다른 엔진이 할 수있는 출력을 확실히 생성 할 수 있습니다.

    일반적으로 성능 문제가있는 템플릿 엔진에 대한 걱정보다 캐싱을 설정하는 것이 더 유리합니다.

    11

    HAML은 구조화 된 HTML을 쉽게 작성하기위한 좋은 도구이기 때문에 HAML을 좋아합니다. 일반적으로 HAML은 사용하기가 즐겁습니다. 그러나 사이트에있을 수있는 트래픽 양에 따라 도구를 선택하는 것과는 거의 관련이 없습니다.

    트래픽이 걱정되면 캐싱을 제대로 사용해야합니다. 그리고 나서 일반적인 웹 애플리케이션 성능의 원칙을 적용해야합니다. 결과적으로 페이지로드에 대한 초라한 응답을 얻을 수 있습니다. 트래픽이 많은 웹 사이트에 실제로 필요한 것은 무엇입니까?

    웹 사이트의 성능을 개선하는 방법을 보여 프리젠 테이션의 몇 여기에서 찾을 수 있습니다 :

    그리고 난에 알고있는 가장 좋은 장소 레일 캐싱을 올바르게 사용하는 법을 배웁니다.

    이 문제가 될 때
    +0

    나는 왜이 대답이 downvoted인지 모른다. –

    관련 문제