You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Vitaly Smyk (JIRA)" <de...@myfaces.apache.org> on 2007/01/25 12:51:49 UTC
[jira] Reopened: (TOMAHAWK-855) dataTable sortable too slow
[ https://issues.apache.org/jira/browse/TOMAHAWK-855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vitaly Smyk reopened TOMAHAWK-855:
----------------------------------
ok i testing it
result:
perfomance increase but rows not sorted
200000 simple rows sorded 10 seconds on AMD 2800+
use MyFaces 1.1.5 snapshot and tomahawk 1.1.5 snapshot also use ajax4jsf
see configurations, jsp and class
<%@taglib prefix="jsf" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="html" uri="http://java.sun.com/jsf/html" %>
<%@taglib prefix="t" uri="http://myfaces.apache.org/tomahawk" %>
<%@taglib prefix="a4j" uri="https://ajax4jsf.dev.java.net/ajax" %>
<%--
Date: 24.01.2007
Time: 22:57:02
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<jsf:view>
<html>
<head><title>Simple jsp page</title></head>
<body>
<html:form>
<a4j:repeat value="#{Test.list}" var="var">
<html:outputText value="#{var}"/>
</a4j:repeat>
<t:dataTable var="var" value="#{Test.list}" rows="20" id="table">
<t:column sortable="true">
<jsf:facet name="header">
<html:outputText value="text"/>
</jsf:facet>
<html:outputText value="#{var}"/>
</t:column>
</t:dataTable>
<t:dataScroller for="table"/>
<%--<html:outputText value="#{Test.testValue}" id="test"/>--%>
<%--<a4j:commandButton reRender="test" value="Ajax Submit Button"/>--%>
<%--<t:inputHtml allowEditSource="true"/>--%>
</html:form>
</body>
</html>
</jsf:view>
<faces-config>
<managed-bean>
<description>test</description>
<managed-bean-name>Test</managed-bean-name>
<managed-bean-class>test.TestBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
package test;
import java.util.List;
import java.util.ArrayList;
/**
* Date: 24.01.2007
* Time: 23:24:28
*/
public class TestBean {
private String testValue;
public String testAction() {
return null;
}
public String getTestValue() {
return testValue;
}
public void setTestValue(String testValue) {
this.testValue = testValue;
}
public List getList() {
List l = new ArrayList();
for(int i=0;i<25000;i++) {
l.add(""+i);
}
return l;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<param-name>forceparser</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter>
<filter-name>MyFacesExtensionsFilter</filter-name>
<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
<init-param>
<param-name>maxFileSize</param-name>
<param-value>20m</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>MyFacesExtensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<!--<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>-->
<servlet-class>test.ServletWrapper</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
</web-app>
> dataTable sortable too slow
> ---------------------------
>
> Key: TOMAHAWK-855
> URL: https://issues.apache.org/jira/browse/TOMAHAWK-855
> Project: MyFaces Tomahawk
> Issue Type: Improvement
> Components: Extended Datatable
> Affects Versions: 1.1.3, 1.1.4-SNAPSHOT, 1.1.5-SNAPSHOT
> Reporter: Vitaly Smyk
> Assigned To: Catalin Kormos
> Fix For: 1.1.5-SNAPSHOT
>
>
> when i use sortable column and many records any sort has too many time and CPU to 100%
> after code review i found where is problem:
> in class SortableModel subclass private final class Comp
> medhod compare too slow becouse it invoke:
> getPropertyValue(_prop);
> i has change it to:
> PropertyUtils.getProperty(_model.getRowData(),_prop);
> and perfomanse increase !!!10 times!!!
> my impovements request:
> or change code or add functionality to setup Comparator themself (better choise)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.