Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi for PHP/Library    [ Add a report in this area ]  
Report #:  104912   Status: Open
rpcl works really slowly and don't use Zend style architecture
Project:  HTML5 Builder Build #:  4.4.0.1656
Version:    4.4 Submitted By:   Alexey Kodubets
Report Type:  Basic functionality failure Date Reported:  4/15/2012 2:05:35 AM
Severity:    Serious / Highly visible problem Last Updated: 7/6/2012 1:38:23 AM
Platform:    All versions Internal Tracking #:   3816
Resolution: None (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: (1 Total Rating)
5.00 out of 5
Total Votes: 10
Description
Pre-requires: firefox + firebug installed for profiling

1) Launch RadPHP;
2) Add clean unit.php (without rpcl);
3) press F9;
4) firefox is launched and press F5 to calculate average time of loading:

In my case it is 40-50 ms - it is ok;

1) add rpcl module to the project + save to file unit1.php;
2) press F9;
3) firefox is launched and press F5 to calculate average time of loading;

Actual result:

250-270 ms;

Expected result:

40-50 ms + X where X is very small (not 200-210 ms).

If I comment out the most of code, it take 180-200 ms:

----
<?php
require_once("rpcl/rpcl.inc.php");
//Includes
use_unit("forms.inc.php");
//use_unit("extctrls.inc.php");
//use_unit("stdctrls.inc.php");

/*
//Class definition
class DataModule1 extends DataModule
{
}

global $application;

global $DataModule1;

//Creates the form
$DataModule1=new DataModule1($application);

//Read from resource file
$DataModule1->loadResource(__FILE__);
  */
?>
---

If I comment out "//use_unit("forms.inc.php");", it takes 50-70 ms.

Thus, "use_unit("forms.inc.php");" is written incorrectly (in VCL style) it doesn't use Zend Style architecture when require_once is called only when it is required inside of function which speeds up the whole script. I suggest to fix it.
Steps to Reproduce:
Pre-requires: firefox + firebug installed for profiling

1) Launch RadPHP;
2) Add clean unit.php (without rpcl);
3) press F9;
4) firefox is launched and press F5 to calculate average time of loading:

In my case it is 40-50 ms - it is ok;

1) add rpcl module to the project + save to file unit1.php;
2) press F9;
3) firefox is launched and press F5 to calculate average time of loading;

Actual result:

250-270 ms;

Expected result:

40-50 ms + X where X is very small (not 200-210 ms).

If I comment out the most of code, it take 180-200 ms:

----
<?php
require_once("rpcl/rpcl.inc.php");
//Includes
use_unit("forms.inc.php");
//use_unit("extctrls.inc.php");
//use_unit("stdctrls.inc.php");

/*
//Class definition
class DataModule1 extends DataModule
{
}

global $application;

global $DataModule1;

//Creates the form
$DataModule1=new DataModule1($application);

//Read from resource file
$DataModule1->loadResource(__FILE__);
  */
?>
---

If I comment out "//use_unit("forms.inc.php");", it takes 50-70 ms.

Thus, "use_unit("forms.inc.php");" is written incorrectly (in VCL style) it doesn't use Zend Style architecture when require_once is called only when it is required inside of function which speeds up the whole script. I suggest to fix it.
Workarounds
None
Attachment
None
Comments

Tomohiro Takahashi at 4/15/2012 5:02:37 AM -
> 3) press F9;
What about pressing(Shift+Ctrl+F9) instead? It does not start Debugger sesion.

Alexey Kodubets at 4/18/2012 11:52:18 AM -
Ctrl + Shift + F9 - It saves 50 ms max. The whole performance is still bad (200 ms).

I have rewritten part of my project without RPCL usage. I used PDO instead and it speeds up the project 5 times. Look likes the rpcl has monolithic archicture that is why it works so slowly.

Tomohiro Takahashi at 7/6/2012 1:09:26 AM -
This report was opened.
But, Internal Tracking Number field is still blank.

Server Response from: ETNACODE01