Articles   Members Online: 3
-Article/Tip Search
-News Group Search over 21 Million news group articles.
-Delphi/Pascal
-CBuilder/C++
-C#Builder/C#
-JBuilder/Java
-Kylix
Member Area
-Home
-Account Center
-Top 10 NEW!!
-Submit Article/Tip
-Forums Upgraded!!
-My Articles
-Edit Information
-Login/Logout
-Become a Member
-Why sign up!
-Newsletter
-Chat Online!
-Indexes NEW!!
Employment
-Build your resume
-Find a job
-Post a job
-Resume Search
Contacts
-Contacts
-Feedbacks
-Link to us
-Privacy/Disclaimer
Embarcadero
Visit Embarcadero
Embarcadero Community
JEDI
Links
Object Array Parse is slow Turn on/off line numbers in source code. Switch to Orginial background IDE or DSP color Comment or reply to this aritlce/tip for discussion. Bookmark this article to my favorite article(s). Print this article
about Delphi 2005 Web Service 16-Aug-05
Category
XML
Language
Delphi All Versions
Views
170
User Rating
No Votes
# Votes
0
Replies
0
Publisher:
HongWei, Yu
Reference URL:
			Hello! 
 Recently I used SOAP transmit the data between two isomerism  systems, the SOAP 
client used Delphi 2005 write, the server end used Apache AXIS 1.2.1.  The client 
end and the server end  exchange data work well, but the performance aspect meets 
one  question.  
  The Delphi client end parse the Soap data package of  data is specially slow, 
specially when analysis object array.  If the  array length in 500, the delphi 
analysis speed lets the person endure  with difficulty. But when I completely 
changes to AXIS realization,  in performance is very good.  
  Under is my test result:


complex object detail is follow:
========================================================================
1     TAddress = class(TBaseObject)
2     private
3       Faddress: string;
4       Fcity: string;
5       Fcountry: string;
6       FpostalCode: string;
7       Fprovince: string;
8     published
9       property address: string read Faddress write Faddress;
10      property city: string read Fcity write Fcity;
11      property country: string read Fcountry write Fcountry;
12      property postalCode: string read FpostalCode write FpostalCode;
13      property province: string read Fprovince write Fprovince;
14    end;
15  
16    ArrayOfRoleEntity = array of TRoleEntity;
17   {"http://types.soap.appfuse.org"}
18  
19  
20  //************************************************************************//
21  // Namespace : http://types.soap.appfuse.org
22  //************************************************************************//
23    TUserEntity = class(TRemotable)
24    private
25      Faddress: TAddress;
26      FconfirmPassword: string;
27      Femail: string;
28      Fenabled: Boolean;
29      FfirstName: string;
30      FlastName: string;
31      Fpassword: string;
32      FpasswordHint: string;
33      FphoneNumber: string;
34      Froles: ArrayOfRoleEntity;
35      Fusername: string;
36      Fversion: Integer;
37      Fwebsite: string;
38    public
39      destructor Destroy; override;
40    published
41      property address: TAddress read Faddress write Faddress;
42      property confirmPassword: string read FconfirmPassword write
43  FconfirmPassword;
44      property email: string read Femail write Femail;
45      property enabled: Boolean read Fenabled write Fenabled;
46      property firstName: string read FfirstName write FfirstName;
47      property lastName: string read FlastName write FlastName;
48      property password: string read Fpassword write Fpassword;
49      property passwordHint: string read FpasswordHint write FpasswordHint;
50      property phoneNumber: string read FphoneNumber write FphoneNumber;
51      property roles: ArrayOfRoleEntity read Froles write Froles;
52      property username: string read Fusername write Fusername;
53      property version: Integer read Fversion write Fversion;
54      property website: string read Fwebsite write Fwebsite;
55    end;
56  
57    ArrayOfUserEntity = array of TUserEntity; 
58    {"http://service.soap.appfuse.org" }
59  
60  
61  //************************************************************************//
62  // Namespace : http://types.soap.appfuse.org
63  //************************************************************************//
64    TRoleEntity = class(TRemotable)
65    private
66      Fdescription: string;
67      Fname: string;
68      Fusers: ArrayOfUserEntity;
69      Fversion: Integer;
70    public
71      destructor Destroy; override;
72    published
73      property description: string read Fdescription write Fdescription;
74      property name: string read Fname write Fname;
75      property users: ArrayOfUserEntity read Fusers write Fusers;
76      property version: Integer read Fversion write Fversion;
77    end;


========================================================================

using AXIS both server and client, the result is follow:

array length 100 ,Invoke time 2078 ms
array length 200 ,Invoke time 1937 ms
array length 300 ,Invoke time 2015 ms
array length 400 ,Invoke time 2094 ms
array length 500 ,Invoke time 2781 ms
array length 600 ,Invoke time 3000 ms
array length 700 ,Invoke time 3235 ms
array length 800 ,Invoke time 3750 ms
array length 900 ,Invoke time 4359 ms
array length 1000 ,Invoke time 4641 ms
array length 1100 ,Invoke time 5407 ms
array length 1200 ,Invoke time 7453 ms
array length 1300 ,Invoke time 6375 ms
array length 1400 ,Invoke time 7157 ms
array length 1500 ,Invoke time 7078 ms
array length 1600 ,Invoke time 8047 ms
array length 1700 ,Invoke time 8703 ms
array length 1800 ,Invoke time 9266 ms
array length 1900 ,Invoke time 10250 ms
array length 2000 ,Invoke time 10875 ms
array length 2100 ,Invoke time 10985 ms
array length 2200 ,Invoke time 14250 ms
array length 2300 ,Invoke time 12156 ms
array length 2400 ,Invoke time 13000 ms
array length 2500 ,Invoke time 13516 ms


but when I change client using delphi 2005,when array length is about 500, invoking time  > 30s.

			
Vote: How useful do you find this Article/Tip?
Bad Excellent
1 2 3 4 5 6 7 8 9 10

 

Advertisement
Share this page
Advertisement
Download from Google

Copyright © Mendozi Enterprises LLC