`
san_yun
  • 浏览: 2662546 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

beanMapper性能测试

 
阅读更多
 
 public static void test1() throws InstantiationException, IllegalAccessException {
        BeanMapper beanMapper = BeanMappers.load();
        Map<String, Object> source = new HashMap<String, Object>();
        source.put("id", 1001l);
        long begin = System.nanoTime();
        BlogDetailDO obj = (BlogDetailDO) beanMapper.getFromMap("TA-BLOG-DETAIL", source);
        long end = System.nanoTime();
        System.out.println((end - begin) / 1000);
    }

    public static void test2() {
        long begin = System.nanoTime();
        Map<String, Object> blogCore = new HashMap<String, Object>();

        Long id = ObjectUtil.toLong(blogCore.get("_id"));
        Integer status = ObjectUtil.toInt(blogCore.get("status"));
        Long photo_id = ObjectUtil.toLong(blogCore.get("photo_id"));
        Long root_id = ObjectUtil.toLong(blogCore.get("root_id"));
        Integer is_root = id.equals(root_id) ? 1 : 0;
        Integer buyable = ObjectUtil.toInt(blogCore.get("buyable"));
        Integer photo_width = ObjectUtil.toInt(blogCore.get("photo_width"));
        Integer photo_weight = ObjectUtil.toInt(blogCore.get("photo_weight"));
        String photo_path = ObjectUtil.toString(blogCore.get("photo_path"));
        Long sender_id = ObjectUtil.toLong(blogCore.get("sender_id"));
        String sender_username = ObjectUtil.toString(blogCore.get("sender_username"));
        String sender_avatar = ObjectUtil.toString(blogCore.get("sender_avatar"));
        Integer like_count = ObjectUtil.toInt(blogCore.get("like_count"));
        Integer favorite_count = ObjectUtil.toInt(blogCore.get("favorite_count"));
        Integer reply_count = ObjectUtil.toInt(blogCore.get("reply_count"));
        String price = ObjectUtil.toString(blogCore.get("item_price"));

        BlogDetailDO obj = new BlogDetailDO();
        obj.setId(id);
        obj.setLike_count(like_count);
        obj.setStatus(status);
        obj.setPhoto_id(photo_id);
        obj.setRoot_id(root_id);
        obj.setBuyable(buyable);
        obj.setPhoto_width(photo_width);
        obj.setPhoto_height(photo_weight);
        obj.setPhoto_path(photo_path);
        obj.setSender_id(sender_id);
        obj.setSender_username(sender_username);
        obj.setSender_avatar(sender_avatar);
        obj.setFavorite_count(favorite_count);
        obj.setReply_count(reply_count);
        obj.setPrice(price);

        long end = System.nanoTime();
        System.out.println((end - begin) / 1000);

    }

    public static void test3() {
        long begin = System.nanoTime();
         "1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20".split(";");
         long end = System.nanoTime();
         System.out.println((end - begin) / 1000);
    }
 

test1:
112
108
121
122

 

test2:
45
41

37
41

 

test3:

318
150
173
153

 

只要不比java string split慢就行。

分享到:
评论

相关推荐

    BeanMapper:比BeanUtils.copyProperties更快

    BeanMapper 一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist...

    java8stream源码-easy-mapper:Easy-mapper是一个简单的、轻量级的、高性能的javabean映射框架

    java8流源码易映射器 Easy-mapper 是一个简单的、轻量级的、高性能的 ...性能测试结果请参考基准测试部分。 中文手册。 1. 简而言之,Easy-mapper 1.1 从哪里获得简单的映射器 Maven: &lt;dependenc

    performance:该存储库包含与性能有关的项目

    表现 ...该项目提供了一些性能测试中使用的测试数据结构。 bean-mapper-test 在这个项目中,测试了一些 Java Bean Mapper。 相关文章 使用 Maven 构建 构建应用程序: $ mvn clean install 作者主页

    MyBatis基于Spring-boot集成通用Mapper以及pagehelper分页插件

    通过Spring的Bean管理,我们可以方便地在Service层注入Mapper接口,无需编写DAO层,使得代码更加简洁。 通用Mapper(`tk.mybatis.mapper`)是由tk.mybatis团队开发的一个MyBatis插件,它的核心功能是提供了通用的CRUD...

    java-mapper-performance-test:该项目使用手动映射,bean utils映射和property utils映射评估性能

    java-mapper-性能测试该项目使用手动映射,bean utils映射和property utils映射来评估性能。 它可以运行10万次,手动映射,bean utils和property utils映射(3个字符串,1个整数和1个大十进制对象)。 它为每个映射...

    用SpringMVC-MyBatis 搭建高性能安全站点

    - **输入验证**:使用JSR-303 Bean Validation进行数据校验,防止恶意输入。 5. **异常处理** - **统一异常处理**:通过自定义`@ControllerAdvice`类,全局处理异常,提供友好的错误页面。 6. **测试支持** - *...

    ssm搭建和测试报告.docx

    6. 测试:编写单元测试和集成测试,确保每个功能的正确性和性能要求。 通过这种方式,我们可以搭建一个完整的SSM项目,并实现登录注册功能。在实际的企业级开发中,SSM框架因其强大的功能和灵活性,被广泛应用于...

    spring boot + mybatis(通用mapper) druid多数据源切换配置

    在Spring Boot应用中,整合MyBatis和Druid并实现多数据源切换是一项常见的需求,尤其是在处理多个数据库环境(如开发、测试、生产)时。本文将深入探讨如何配置和使用这一技术栈。 首先,我们需要了解`spring boot`...

    Spring+SpringMVC+Mybatis 基础环境搭建工程(带测试用例)

    一个SSM项目会包含以下关键部分:src/main/java(存放源代码,包括Spring配置、业务逻辑和服务接口)、src/main/resources(存放配置文件,如Spring的bean配置、Mybatis的Mapper配置)、src/test/java(存放测试用例...

    ssm测试sql

    SSM(Spring、SpringMVC、MyBatis)是一个常见的Java web开发框架,它整合了Spring的核心特性、Spring MVC和MyBatis...通过理解这些知识点,开发者能够有效地进行SSM项目中的数据库操作和测试,保证系统的稳定和性能。

    Mock单元测试和H2内存库的使用.pdf

    另一方面,H2内存数据库是一个轻量级、高性能的关系型数据库,特别适合于测试环境。它可以快速启动并运行在内存中,无需实际的持久化存储,这使得它成为单元测试的理想选择。在配置Spring与H2数据库集成时,我们通常...

    用于生成类型安全的bean映射器的注释处理器_Java_FreeMarker_下载.zip

    6. **性能优化**:MapStruct的映射器是静态生成的,因此在运行时没有性能损失,这使得它在性能敏感的应用场景下也是个很好的选择。 7. **与Spring集成**:MapStruct可以无缝集成到Spring框架中,通过`@Component`或...

    Mybatis批量foreach merge into的用法

    mapper配置实现中,需要设置parameterType为java.util.List,然后使用foreach循环插入数据。 需要注意的是,使用这种方法时,数据量不能太大,否则可能会出现性能问题。在测试中,发现20字段以内的表新增,数据2000...

    orika,更简单、更好和更快的java bean映射框架.zip

    Orika的工作原理是通过元数据配置或自动检测源对象和目标对象的字段来创建映射规则。它支持多种映射场景,包括基本类型、复杂对象、集合以及继承结构。框架内部使用了高效的代码生成技术,确保映射过程的性能优化。 ...

    SSM框架+redis+druid事务控制+定时任务介绍+sql脚本+测试说明及请求路径

    在这个项目中,SQL脚本可能是用来创建和初始化数据库表的,对数据库的增删改查操作可以通过MyBatis的Mapper接口来实现。 Redis是一款高性能的键值存储系统,常用于缓存数据,以提高数据读取速度。在这个项目中,...

    Spring_mybatis整合相关 jar 包,配置文件

    6. 测试整合是否成功:编写测试类,检查Spring容器能否正确初始化所有bean,以及数据库操作是否正常。 以上就是关于Spring和MyBatis整合的基本知识点,包括所需的jar包和配置文件,以及整合过程中的关键配置和步骤...

    spring boot 和mybatis的整合

    它预先配置了许多常见的Bean,如DataSource、JdbcTemplate等,开发者无需编写大量的XML配置文件。Spring Boot还提供了内置的Tomcat服务器,可以实现快速启动和运行Web应用。 MyBatis是一个优秀的持久层框架,它允许...

    mybatis 基于srpingioc

    4. 配置 MyBatis-Spring 的 MapperScannerConfigurer:扫描指定包下的 Mapper 接口,将它们自动注册为 Spring Bean。 5. 编写 Mapper 接口和 XML 映射文件:定义 SQL 查询和操作,实现数据访问接口。 6. 使用注解或 ...

Global site tag (gtag.js) - Google Analytics