playframework 2.x(scala)与mysql 性能测试

原创 2015年11月21日 17:18:28


从mysql查询10条记录,通过网页显示该列表,测试程序使用组件anorm,play mvc.playframework 版本2.2.4.
数据库: mysql 5.6 .
操作系统:windows 2003 server
硬件服务器:amd 双核四线程
网页长度:3.3kB
测试客户端:jmeter
测试线程数:2000

测试结果:

样本数:232199
avg:237ms
中值:154ms
偏离:249

测试程序源码:


controller:


http://localhost:9000/salerlist

package controllers

import play.api._
import play.api.mvc._
import models._

/**
 * Created by Administrator on 15-11-21.
 */


object Saleradmin extends  Controller {

      def listenable = Action{
        val saler=Saler

        val list=  saler.findSalerListEnable()

        Ok(views.html.salerlist.render("salerList",list))


      }
}



models:



package models

import java.util.{Date}
import play.api.db._
import anorm._
import anorm.SqlParser._
import play.api.Play.current

import scala.language.postfixOps

case class Saler(  userLocid : Pk[Long]= NotAssigned,userName : String ,  enable : Boolean,    remoteUserId : Option[Long] ){

}

object Saler {


  def findSalerListEnable():List[Saler]= {


    var isenable: Boolean = true

    DB.withConnection { implicit connection =>
     val sql= SQL(
        """select * from saler  where enable={enable}"""

      ).on("enable" -> isenable)

         val list:List[Saler]= sql().map( row =>
            Saler(row[Pk[Long]] ("userLocid"),row[String]("userName"),row[Boolean]("enable"),row[Option[Long] ]("remoteUserId"))

          ).toList

        list
    }

  }

}
/*

      object Saler {

      val simple = {
        get[Pk[Int] ]("saler.userLocid") ~
        get[String]("saler.userName" )~
        get[Boolean]("saler.enable") ~
        get[Option[Int]]("saler.remoteUserId").map{

          case userLocid~userName~enable~remoteUserId => Saler( userLocid , userName , enable ,remoteUserId )

        }

      }

    def findSalerListEnable():Seq[Saler]= {
      var isenable: Boolean = true

      DB.withConnection { implicit connection =>
       SQL(
          """select * from saler  where enable={enable}"""

        ).on("enable" -> isenable)
          .as(simple *)
      }

    }


*/

templete main:

@(title:String)(list:List[Saler])

@salerListTemplete("aabbcc"){

<h1>业务员列表</h1>

<ul>

@for(saler<-list){
    <li>@saler.userName</li>
}

</ul>
}


templete:

@(title: String)(content: Html)




<!DOCTYPE html>

<html>
<head>
    <title>@title</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
    <link rel="shortcut icon" type="image/png" href="@routes.Assets.at("images/favicon.png")">
    <script src="@routes.Assets.at("javascripts/jquery-1.9.0.min.js")" type="text/javascript"></script>

        <style type="text/css">

        </style>
    </head>
    <body>
       


<link rel="stylesheet" media="screen" href="/resources/style/main.css">

<section id="top">
    <div class="wrapper">
        <h1><a href="">广告采集系统</a></h1>
        <nav>
            <span class="versions">
                <span>采集管理中心</span>
                <select onchange="document.location=this.value">
                    <option selected disabled>选择网站</option>
                    <option value="/adspider_admin_ali">采集</option>
                    <option value="/adspider_admin_hc">hc采集</option>
                </select>
            </span>
        </nav>
    </div>
</section>

<div id="news">

    version: 1.0 time:2015
   </div>


<div id="content" class="wrapper doc">



        <article>


    <p>
   @content
    </p>




        </article>
        <aside>
            <h3>al广告采集</h3>
            <ul>
          <li><a href="">启动</a></li>
                <li><a href="/api/scala/index.html">停止</a></li>

                 <li><a href="/api/scala/index.html">采集报告</a></li>

                 <li><a href="/api/scala/index.html">监听</a></li>
            </ul>


                 <h3>hc广告采集</h3>
            <ul>
          <li><a href="">启动</a></li>
                <li><a href="/api/scala/index.html">停止</a></li>
                   <li><a href="/api/scala/index.html">采集报告</a></li>

                    <li><a href="/api/scala/index.html">监听</a></li>
            </ul>

            <h3>浏览广告</h3>
            <ul>
                <li><a href="">广告列表(本地版)</a></li>
                <li><a href="/api/scala/index.html">广告列表(业务员版)</a></li>
            </ul>

            <h3>项目测试</h3>
            <ul>
                <li><a href="/PlayConsole">数据库测试</a></li>
               <li><a href="/PlayConsole">WEB文档下载测试</a></li>
                <li><a href="/ScalaTodoList">HTML源码分析测试</a></li>

                  <li><a href="/ScalaTodoList">广告记录CURD测试</a></li>
            </ul>

                        <h3>业务员管理</h3>
            <ul>
                <li><a href="/salerlist">业务员列表</a></li>

            </ul>

        </aside>




</div>


    </body>

</html>


mysql sql ddl:


DROP TABLE IF EXISTS `alihc_ad_spider_db`.`saler`;
CREATE TABLE  `alihc_ad_spider_db`.`saler` (
  `userLocid` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `userName` varchar(45) DEFAULT NULL,
  `enable` tinyint(1) unsigned DEFAULT NULL,
  `remoteUserId` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`userLocid`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

Scala语言与Play框架入门教程

Scala在业界已日益成为主流的编程语言和开发工具,与Java一样在Web开发领域的发展尤其令开发者关注,因此本文选取Scala语言中当前两个主要Web框架(Play、Lift)中的一个较易上手的Pl...
  • qq_14926159
  • qq_14926159
  • 2016年09月19日 16:34
  • 4075

MySQL查看SQL语句执行效率和mysql几种性能测试的工具

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2017年03月11日 22:18
  • 6010

MySQL数据库性能测试的方法

MySQL数据库性能测试的方法
  • testingstar
  • testingstar
  • 2017年03月06日 15:31
  • 3309

MySQL 插入(insert)性能测试

转自:http://elf8848.iteye.com/blog/1547398 作者:赵磊 博客:http://elf8848.iteye.com   测试环境: 笔记本电脑 C...
  • xeseo
  • xeseo
  • 2016年04月25日 17:54
  • 1285

mysql几种性能测试的工具使用

mysql几种性能测试的工具使用 近期由于要比较mysql及其分支mariadb, percona的性能,了解了几个这方面的工具,包括:mysqlslap sysbench tpcc-mysql...
  • xyw591238
  • xyw591238
  • 2016年07月20日 09:13
  • 2928

MongoDB 与 MySQL 性能测试分析

1、 I/O读写情况从插入情况下的TPS数据可以看出, MySQL、HandlerSocket和Mongodb的数据有比较明显的差别,这主要跟他们的内部实现和测试方式有关系。测试场景下MySQL采用的...
  • HeatDeath
  • HeatDeath
  • 2017年06月01日 15:34
  • 661

MySQL自带的性能压力测试工具mysqlslap详解

PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用。其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的。下面举例说说。mysqlslap是从5.1.4版开始的一...
  • permike
  • permike
  • 2016年01月29日 17:49
  • 7121

mysql读写性能测试

近来工作中用mysql较多,但其实自己对mysql性能并不十分了解。前阵子正好读到一篇写用mysqlslap压测mysql性能的文章,于是自己也尝试了一下mysqlslap并且得到一些数据和结论。把压...
  • caianye
  • caianye
  • 2014年12月16日 11:29
  • 1492

python 测试mysql写入性能

测试环境: (1) 阿里云服务器centos 6.5 (2) 2G内存 (3) 普通硬盘 (4) mysql 5.1.73   数据库存储引擎为 InnoDB (5) python 2.7      ...
  • KWSY2008
  • KWSY2008
  • 2016年08月31日 07:48
  • 1740

性能测试工具操作数据库(三)-Jmeter与Mysql

性能测试工具操作数据库连载三,本章节以jmeter操作mysql为例,可以实现jmeter批量插入、更新、查询、删除mysql数据库,以及说明注意事项,对初学者绝对有帮助。...
  • smooth00
  • smooth00
  • 2017年03月28日 09:57
  • 6022
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:playframework 2.x(scala)与mysql 性能测试
举报原因:
原因补充:

(最多只允许输入30个字)