Re: [Zope] page templates and "python:"

2006-07-03 Thread Lennart Regebro

On 7/3/06, Claudio Battaglino <[EMAIL PROTECTED]> wrote:

Is it a  significant test?


Yes, for the use case of in-memory objects and methods.
You might want to do the same with a traversal path
nocall:context/folder1/folder2/folder3, or something, and then
python:context.folder1.folder2.folder3

--
Lennart Regebro, Nuxeo http://www.nuxeo.com/
CPS Content Management http://www.cps-project.org/
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] page templates and "python:"

2006-07-03 Thread Claudio Battaglino

Andreas Jung ha scritto:




--On 3. Juli 2006 15:38:58 +0200 Claudio Battaglino 
<[EMAIL PROTECTED]> wrote:



Jens Vagelpohl ha scritto:




Could it be that, using a Python expression, I have an overhead because
Zope loads a Python interpreter each time it finds a "python:"?
If this is true then it is better to use path expression, if possible.



nahPython expression are executed in a sandbox (RestrictedPython) 
which will introduce additional overhead..but let numbers 
speak...write a loop in TAL and compare the performance of path 
expressions vs. python expressions... don't guess, but measure...


-aj


It seems that the Python Expression works a bit better:

To the test this, I used these two Page Templates and PTProfiler:

PATH EXPRESSION 
   

 
   

PYTHON EXPRESSION
   
 
   

PATH EXPRESSION 
Expression - Total time - Number of calls - Time per call

path: test_user/getId   0.7250000.00014
path: test_user/getId   0.6350000.00013
path: test_user/getId   0.7250000.00014

path: test_user/getId   4.0 5   8e-05
path: test_user/getId   4.095   8e-05
path: test_user/getId   4.125   8e-05

PYTHON EXPRESSION
Expression - Total time - Number of calls - Time per call
python: test_user.getId()   0.6 50000.00012
python: test_user.getId()   0.5150000.0001
python: test_user.getId()   0.4850000.0001
python: test_user.getId()   3.195   6e-05
python: test_user.getId()   3.425   7e-05
python: test_user.getId()   2.965   6e-05

Is it a  significant test?

claudio :-)

___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] page templates and "python:"

2006-07-03 Thread Lennart Regebro

On 7/3/06, Chris McDonough <[EMAIL PROTECTED]> wrote:

Actually, I think python: expressions perform slightly better than
their path: counterparts because their evaluation step needs to do
less work (no guessing about getitem vs. getattr).  Geoff Davis
taught me that.  But in the end it's all dwarfed by the penalty
imposed by security, so it really doesn't much matter.


Right. So the best and quickest is to prepare all the data in pure
disk-based python.
It's easy to do if you use the view methodology you get with Five, but
there are other ways to do it if you don't want to use views.
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] page templates and "python:"

2006-07-03 Thread Chris McDonough
Actually, I think python: expressions perform slightly better than  
their path: counterparts because their evaluation step needs to do  
less work (no guessing about getitem vs. getattr).  Geoff Davis  
taught me that.  But in the end it's all dwarfed by the penalty  
imposed by security, so it really doesn't much matter.


On Jul 3, 2006, at 9:20 AM, Jens Vagelpohl wrote:


-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 3 Jul 2006, at 15:09, Andreas Jung wrote:



...metal:block>


...



The main difference between both variants is that in path  
expressions getValue can be either an attribute or a method...so  
at least path expressions may have some overhead...you have to  
measure it.


As far as I know path expressions have better performance. I don't  
have the in-depth expression engine knowledge to explain why, but  
that's been what everyone has said to me before.


jens


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (Darwin)

iD8DBQFEqRmaRAx5nvEhZLIRAhsIAJsHRlq94iq7c0wbeGN92JhlikUFwgCfaClc
b16sWokKTRVrWo4BtvRGVhg=
=tt4I
-END PGP SIGNATURE-
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists -http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope-dev )



___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] page templates and "python:"

2006-07-03 Thread Andreas Jung



--On 3. Juli 2006 15:38:58 +0200 Claudio Battaglino 
<[EMAIL PROTECTED]> wrote:



Jens Vagelpohl ha scritto:



Could it be that, using a Python expression, I have an overhead because
Zope loads a Python interpreter each time it finds a "python:"?
If this is true then it is better to use path expression, if possible.



nahPython expression are executed in a sandbox (RestrictedPython) which 
will introduce additional overhead..but let numbers speak...write a loop in 
TAL and compare the performance of path expressions vs. python 
expressions... don't guess, but measure...


-aj

pgpZL6GLQNSgL.pgp
Description: PGP signature
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] page templates and "python:"

2006-07-03 Thread Claudio Battaglino

Jens Vagelpohl ha scritto:


-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 3 Jul 2006, at 15:09, Andreas Jung wrote:



...metal:block>


...



The main difference between both variants is that in path expressions 
getValue can be either an attribute or a method...so at least path 
expressions may have some overhead...you have to measure it.



As far as I know path expressions have better performance. I don't 
have the in-depth expression engine knowledge to explain why, but 
that's been what everyone has said to me before.


jens


Could it be that, using a Python expression, I have an overhead because 
Zope loads a Python interpreter each time it finds a "python:"?

If this is true then it is better to use path expression, if possible.

claudio :-)





___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] page templates and "python:"

2006-07-03 Thread Jens Vagelpohl

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1


On 3 Jul 2006, at 15:09, Andreas Jung wrote:



...metal:block>


...



The main difference between both variants is that in path  
expressions getValue can be either an attribute or a method...so at  
least path expressions may have some overhead...you have to measure  
it.


As far as I know path expressions have better performance. I don't  
have the in-depth expression engine knowledge to explain why, but  
that's been what everyone has said to me before.


jens


-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (Darwin)

iD8DBQFEqRmaRAx5nvEhZLIRAhsIAJsHRlq94iq7c0wbeGN92JhlikUFwgCfaClc
b16sWokKTRVrWo4BtvRGVhg=
=tt4I
-END PGP SIGNATURE-
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
http://mail.zope.org/mailman/listinfo/zope-announce

http://mail.zope.org/mailman/listinfo/zope-dev )


Re: [Zope] page templates and "python:"

2006-07-03 Thread Andreas Jung



--On 3. Juli 2006 15:05:36 +0200 Claudio Battaglino 
<[EMAIL PROTECTED]> wrote:



Hi,
what does exactly happen when I use "python:" into a zpt?
Is it a problem if I have many "python:" in my page templates?
What are the differences in performances of these two definitions?


Talking of performance...you might write a benchmark to figure it out...
no idea


...

...



The main difference between both variants is that in path expressions 
getValue can be either an attribute or a method...so at least path 
expressions may have some overhead...you have to measure it.


-aj

pgp2Bb8wDjS0s.pgp
Description: PGP signature
___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )