Delphi for PHP评测

http://tech.ddvip.com   2007年10月06日    社区交流

内容摘要:我根据D4P的DEMO,设计了两个程序,一个是普通的表单提交-返回程序,然后我所熟悉的QuickForm进行了对比;另一个是数据库程序,就是查询一个MySQL表,然后返回,另外试用DataGrid列出数据。

  对于第一个测试程序,很简单,就是一个表单提交数据,然后返回响应。大家可以自己参照Demo来写,我测试了一下效率,大概执行时间在0.5秒左右,嗯,算是非常慢。

  对于第二个测试程序,也就是数据库操作程序,是我比较重视的,下面来详细介绍一下。

  D4P目前支持MySQL和Interbase两种数据库。我打开D4P的安装目录看了一下,原来数据库访问层使用的是ADODB(http://adodb.sourceforge.net/)这个开源类库。也就是说理论上将来D4P可能支持非常多的数据库,因为ADODB实在太强大(这里是ADOdb支持的所有数据库:http://phplens.com/adodb/supported.databases.html)。

  D4P提供了五种数据库访问控件(Data Access:Datasource,Database,Table,Query,StorProc—数据源、库、表、查询、存储过程)和三种数据库控制控件(DBGrid,DBPaninator,DBRepeater—表数据列表、分页、表数据或记录集列表)。

  DBGrid的设计还是很精巧的,前端采用了AJAX,显示很漂亮,还可以直接更新。但显示速度较慢。老实说这样一种东西对于管理后台数据库似乎中看不中用,如果是数据库管理,我们还是使用熟悉的更为强大的PHPMyAdmin吧;如果是提供给用户的管理页面,我们要定制很多页面效果,DBGrid又不满足要求(太复杂了,而且都封装起来了,修改效果不如自己写)。用于给客户作展示倒是挺适合的。

Delphi for PHP评测

  我们再来测试一下代码的执行速度。任务很简单,我们从两个表中分别读取30条记录,然后分别两个生成DataGrid:

  测试代码非常简单:

<?php
$time_start=microtime_float();
    //Includes
    require_once("vcl/vcl.inc.php");
    use_unit("forms.inc.php");
    use_unit("dbgrids.inc.php");
    use_unit("dbctrls.inc.php");
    use_unit("db.inc.php");
    use_unit("dbtables.inc.php");
    use_unit("extctrls.inc.php");
    use_unit("stdctrls.inc.php");
$time_start2=microtime_float();
    //Classdefinition
    classUnit2extendsPage
    {
       public$DBGrid2=null;
       public$dsfeedentry1=null;
       public$tbfeedentry1=null;
       public$Query1=null;
       public$DBGrid1=null;
       public$dsarticle1=null;
       public$dbhappycms21=null;
       public$tbarticle1=null;
    }
    global$application;
    global$Unit2;
    //Createstheform
    $Unit2=newUnit2($application);
    //Readfromresourcefile
    $Unit2->loadResource(__FILE__);
    //Showstheform
    $Unit2->show();
    functionmicrotime_float(){
        list($usec,$sec)=explode("",microtime());
        return((float)$usec+(float)$sec);
    }
$time_end=microtime_float();
$time_lib=$time_start2-$time_start;
$time_total=$time_end-$time_start;
echo"Loadedlibsin$time_libsecondsandallprocessedin $time_totalseconds";
?>

作者:haopappy2004    责编:豆豆技术应用

正在加载评论...