데이터베이스에서 약 1000 개의 행을로드 중입니다.많은 익명 함수를 호출하는 것이 왜 느린가요?
테이블을 인쇄하는 클래스가 있습니다.
<% table.rules :date_uzp, lambda { |row| l row.date_uzp if row.date_uzp.present? } %>
<% table.rules :another_column, lambda { |row| helper_method row } %>
을 그리고 결국, 난 그냥 = table.print %> <퍼센트 호출하고이 테이블에 대한 HTML을 생성 :보기에서 나는 예를 들어, 거의 각 열에 대해, 몇 가지 규칙을 정의합니다.
왜 테이블을 생성하는 데 특별한 클래스가 필요합니까? 테이블은이 프로젝트에서 정말 구체적입니다. 따라서 DRY의 원칙을 따르기 위해서 수업을 들었습니다.
그러나 거의 모든 열을 처리하고 익명 함수를 호출하면 문제가 발생합니다. 너무 느립니다. (익명 기능은 약 10 000 번 호출됩니다. 알아요. 꽤 많이 있지만 너무 느릴 수는 없습니다.) 페이지는 약 50 초를로드합니다.
어디에 문제가 있습니까? 너는 무엇을 제안 하는가?
당신은 그것을 bechmarked? 왜 람다에 관한 것이지, 내부의 코드 나 클래스가하는 일에 관한 것이 아닙니다. – Anton
lambda를 호출 할 때 줄을 주석 처리하면 페이지로드가 50 초에서 2 초로 줄어 듭니다. –
하지만 현지화,'date_uzp' 호출 (BTW 두 번 수행됨),'helper_method' 또는 ERB보다'람다 '라고 생각하는 이유는 무엇입니까? –