Python论坛  - 讨论区

标题:答复: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?

2004年05月26日 星期三 19:14

Tan Lihui tony at exchange.ricsson.com
Wed May 26 19:14:30 HKT 2004

外部方法写程序确实比较快些(是指写程序的效率高),但外部方法不是说比直接用zope api继承下来实现慢吗?

外部方法获取数据源,zpt做模板,模板套上数据就成了输出的html。也用了缓存和数据库连接池。我这是通常的做法,这样效率不行吗?你认为问题出在哪里?是模板语言?还是什么?我在测试的时候,db的io不是特别高,所以得出的结论是zope有问题。

我相信你那个会比较快些,因为你的外部方法根本不去拿数据,数据是由一个后台程序定时去拿的。但是这样做可能只适用于实时性不要求很高的应用。对于一个论坛,大家发表了文章,没有理由要求他过一会儿才能看到自己贴的文,他会以为自己没贴成功,会继续贴了很多个同样的文章。一般都要求一发贴就能看到的..... 这些情况又没有好方法呢?

期待跟你交流,你是属于吃透zope的架构,并且善于根据自己应用的特点去做优化的人。

-----邮件原件-----
发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 周海文
发送时间: 2004年5月26日 18:03
收件人: python-chinese at lists.python.cn
主题: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?

呵呵!,不好意思,这个就是我们做的。
你说的对,我们基本上是全部用ZOPE中的External Method连接python程序,然后由python程序产生html输出。在ZOPE中作了缓存,有一个后台更新程序定时从数据库选择数据,然后更新到ZOPE的内存空间,python程序则直接从内存中拿数据组成动态的页面。

至于共享数据库连接的问题,你可以先写一个简单的数据库连接类,然后实例化成对象,然后从其他的python程序中import这个对象,用这个对象访问数据库,就已经是共享的了。

这种共享数据库连接的方法是基于python的,所以不仅在zope中可以,而且在apache+mod_python中也可以(我们有apache+mod_python的项目也是这么用的)。


----- Original Message ----- 
From: "Tan Lihui" <tony at exchange.ricsson.com>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, May 26, 2004 5:28 PM
Subject: 答复: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?


巨灵财经?
怎么找人问呢?

-----邮件原件-----
发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 Jacob Fan
发送时间: 2004年5月26日 15:55
收件人: python-chinese at lists.python.cn
主题: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?


----- Original Message ----- 
From: "周海文" <zhou.haiwen at gti.cn>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, May 26, 2004 3:41 PM
Subject: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?


> 你说zope的效率有问题,你可以看看 http://webfinance.gti.cn,这个网站目前的数据库容量已有13GB,是使用zope+python的组合,效率也不见差呀?
> 
> 关于效率,我认为 apache+mod_python 是python中最快的组合。

是啊,不是一般的快。 ;-)

_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年05月27日 星期四 09:10

周海文 zhou.haiwen at gti.cn
Thu May 27 09:10:13 HKT 2004

db io的效率关键是要生成一个共享的数据库联接对象(如下面的SHARE.py),然后每次访问数据库时就使用这个对象(如other.py),就减少了每次建立连接的开销。速度会明显提高很多。

#file: SHARE.py
import dbi,odbc,time
class DataBaseParent:
    def __init__(self,strConnect):
        self.strConnect=strConnect
        self.db=odbc.odbc(strConnect)

    def select(self,sqlstr):
        cur=self.db.cursor()
        cur.execute(sqlstr)
        List=cur.fetchall()
        iTotal_length=len(List)
        self.description=cur.description
        return List,iTotal_length

    def delete(sql):
       ...

try:
    db=DataBaseParent("ODBC_DSN_NAME/sa/sa")            #关系数据库连接对象
except:
    raise 'db connect error'



#file: other.py
from SHARE import db         #导入数据库连接对象
def getContent():
    lT,iN=db.select("select * from users")
    print lT,iN


----- Original Message ----- 
From: "Tan Lihui" <tony at exchange.ricsson.com>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, May 26, 2004 7:14 PM
Subject: 答复: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?


外部方法写程序确实比较快些(是指写程序的效率高),但外部方法不是说比直接用zope api继承下来实现慢吗?

外部方法获取数据源,zpt做模板,模板套上数据就成了输出的html。也用了缓存和数据库连接池。我这是通常的做法,这样效率不行吗?你认为问题出在哪里?是模板语言?还是什么?我在测试的时候,db的io不是特别高,所以得出的结论是zope有问题。

我相信你那个会比较快些,因为你的外部方法根本不去拿数据,数据是由一个后台程序定时去拿的。但是这样做可能只适用于实时性不要求很高的应用。对于一个论坛,大家发表了文章,没有理由要求他过一会儿才能看到自己贴的文,他会以为自己没贴成功,会继续贴了很多个同样的文章。一般都要求一发贴就能看到的..... 这些情况又没有好方法呢?

期待跟你交流,你是属于吃透zope的架构,并且善于根据自己应用的特点去做优化的人。

-----邮件原件-----
发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 周海文
发送时间: 2004年5月26日 18:03
收件人: python-chinese at lists.python.cn
主题: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?

呵呵!,不好意思,这个就是我们做的。
你说的对,我们基本上是全部用ZOPE中的External Method连接python程序,然后由python程序产生html输出。在ZOPE中作了缓存,有一个后台更新程序定时从数据库选择数据,然后更新到ZOPE的内存空间,python程序则直接从内存中拿数据组成动态的页面。

至于共享数据库连接的问题,你可以先写一个简单的数据库连接类,然后实例化成对象,然后从其他的python程序中import这个对象,用这个对象访问数据库,就已经是共享的了。

这种共享数据库连接的方法是基于python的,所以不仅在zope中可以,而且在apache+mod_python中也可以(我们有apache+mod_python的项目也是这么用的)。


----- Original Message ----- 
From: "Tan Lihui" <tony at exchange.ricsson.com>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, May 26, 2004 5:28 PM
Subject: 答复: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?


巨灵财经?
怎么找人问呢?

-----邮件原件-----
发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 Jacob Fan
发送时间: 2004年5月26日 15:55
收件人: python-chinese at lists.python.cn
主题: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?


----- Original Message ----- 
From: "周海文" <zhou.haiwen at gti.cn>
To: <python-chinese at lists.python.cn>
Sent: Wednesday, May 26, 2004 3:41 PM
Subject: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?


> 你说zope的效率有问题,你可以看看 http://webfinance.gti.cn,这个网站目前的数据库容量已有13GB,是使用zope+python的组合,效率也不见差呀?
> 
> 关于效率,我认为 apache+mod_python 是python中最快的组合。

是啊,不是一般的快。 ;-)

_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese

_______________________________________________
python-chinese list
python-chinese at lists.python.cn
http://python.cn/mailman/listinfo/python-chinese

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年05月27日 星期四 09:45

The UnderTaker undertaker at i-cable.com
Thu May 27 09:45:24 HKT 2004

30CY09+AsrvKx8O/aW1wb3J00ru0zr7NvajBotK7goDfQr3ThuGjv8v8sru/ycTc08DfaLGjs9aG
ztK7lLWT/o7swpO907DJDQoNCi0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0gDQpGcm9tOiAi
1ty6o87EIiA8emhvdS5oYWl3ZW5AZ3RpLmNuPg0KVG86IDxweXRob24tY2hpbmVzZUBsaXN0cy5w
eXRob24uY24+DQpTZW50OiBUaHVyc2RheSwgTWF5IDI3LCAyMDA0IDk6MTAgQU0NClN1YmplY3Q6
IFJlOiBbcHl0aG9uLWNoaW5lc2VdyOe6ztC00ru49tPDV2Vi0M7KveSvwMDSu7TOo6y+zcTcs6PX
ocTatOa1xLPM0PKjvw0KDQoNCj4gZGIgaW+1xNCnwsq52Lz8ysfSqsn6s8nSu7j2ubLP7bXEyv2+
3b/iwaq907bUz/MoyOfPwsPmtcRTSEFSRS5weSmjrMi7uvPDv7TOt8POysr9vt2/4sqxvs3KudPD
1eK49rbUz/MoyOdvdGhlci5weSmjrL7NvPXJ2cHLw7+0zr2owaLBrL3TtcS/qs/6oaPL2bbIu+HD
98/UzOG437rctuChow0KPiANCj4gI2ZpbGU6IFNIQVJFLnB5DQo+IGltcG9ydCBkYmksb2RiYyx0
aW1lDQo+IGNsYXNzIERhdGFCYXNlUGFyZW50Og0KPiAgICAgZGVmIF9faW5pdF9fKHNlbGYsc3Ry
Q29ubmVjdCk6DQo+ICAgICAgICAgc2VsZi5zdHJDb25uZWN0PXN0ckNvbm5lY3QNCj4gICAgICAg
ICBzZWxmLmRiPW9kYmMub2RiYyhzdHJDb25uZWN0KQ0KPiANCj4gICAgIGRlZiBzZWxlY3Qoc2Vs
ZixzcWxzdHIpOg0KPiAgICAgICAgIGN1cj1zZWxmLmRiLmN1cnNvcigpDQo+ICAgICAgICAgY3Vy
LmV4ZWN1dGUoc3Fsc3RyKQ0KPiAgICAgICAgIExpc3Q9Y3VyLmZldGNoYWxsKCkNCj4gICAgICAg
ICBpVG90YWxfbGVuZ3RoPWxlbihMaXN0KQ0KPiAgICAgICAgIHNlbGYuZGVzY3JpcHRpb249Y3Vy
LmRlc2NyaXB0aW9uDQo+ICAgICAgICAgcmV0dXJuIExpc3QsaVRvdGFsX2xlbmd0aA0KPiANCj4g
ICAgIGRlZiBkZWxldGUoc3FsKToNCj4gICAgICAgIC4uLg0KPiANCj4gdHJ5Og0KPiAgICAgZGI9
RGF0YUJhc2VQYXJlbnQoIk9EQkNfRFNOX05BTUUvc2Evc2EiKSAgICAgICAgICAgICO52M+1yv2+
3b/iway907bUz/MNCj4gZXhjZXB0Og0KPiAgICAgcmFpc2UgJ2RiIGNvbm5lY3QgZXJyb3InDQo+
IA0KPiANCj4gDQo+ICNmaWxlOiBvdGhlci5weQ0KPiBmcm9tIFNIQVJFIGltcG9ydCBkYiAgICAg
ICAgICO1vMjryv2+3b/iway907bUz/MNCj4gZGVmIGdldENvbnRlbnQoKToNCj4gICAgIGxULGlO
PWRiLnNlbGVjdCgic2VsZWN0ICogZnJvbSB1c2VycyIpDQo+ICAgICBwcmludCBsVCxpTg0KPiAN
Cj4gDQo+IC0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0gDQo+IEZyb206ICJUYW4gTGlodWki
IDx0b255QGV4Y2hhbmdlLnJpY3Nzb24uY29tPg0KPiBUbzogPHB5dGhvbi1jaGluZXNlQGxpc3Rz
LnB5dGhvbi5jbj4NCj4gU2VudDogV2VkbmVzZGF5LCBNYXkgMjYsIDIwMDQgNzoxNCBQTQ0KPiBT
dWJqZWN0OiC08Li0OiBbcHl0aG9uLWNoaW5lc2VdyOe6ztC00ru49tPDV2Vi0M7KveSvwMDSu7TO
o6y+zcTcs6PXocTatOa1xLPM0PKjvw0KPiANCj4gDQo+IM3isr+3vbeo0LSzzNDyyLfKtbHIvc+/
7NCpo6jKx9a40LSzzNDytcTQp8LKuN+jqaOstavN4rK/t723qLK7ysfLtbHI1rG909PDem9wZSBh
cGm8zLPQz8LAtMq1z9bC/cLwo78NCj4gDQo+IM3isr+3vbeou/HIocr9vt3UtKOso/qj8KP01/bE
o7Dlo6zEo7DlzNfJz8r9vt2+zbPJwcvK5LP2tcRodG1soaPSstPDwcu7urTmus3K/b7dv+LBrL3T
s9iho87S1eLKx82os6O1xNf2t6ijrNXi0fnQp8LKsrvQ0MLwo7/E48jPzqrOyszis/bU2sTEwO+j
v8rHxKOw5dPv0dSjv7u5ysfKssO0o7/O0tTasuLK1LXEyrG68qOso+Sj4rXEo+mj77K7ysfM2LHw
uN+jrMv50tS1w7P2tcS94cLbysej+qPvo/Cj5dPQzsrM4qGjDQo+IA0KPiDO0s/g0MXE48THuPa7
4bHIvc+/7NCpo6zS8s6qxOO1xM3isr+3vbeouPmxvrK7yKXEw8r9vt2jrMr9vt3Kx9PJ0ru49rrz
zKizzNDytqjKscilxMO1xKGjtavKx9Xi0fnX9r/JxNzWu8rK08PT2sq1yrHQ1LK70qrH87rcuN+1
xNOm08Oho7bU09rSu7j2wtvMs6OstPO80reise3By87E1cKjrMO709DA7dPJ0qrH88v7uf3Su7vh
tvmyxcTcv7S1vdfUvLrM+bXEzsSjrMv7u+HS1M6q19S8usO7zPmzybmmo6y74bzM0PjM+cHLuty2
4Lj2zazR+bXEzsTVwqGj0ruw47a80qrH89K7t6LM+b7NxNy/tLW9tcQuLi4uLqGh1eLQqcfpv/bT
1sO709C6w7e9t6jE2KO/DQo+IA0KPiDG2rT9uPrE4727wfejrMTjysfK9NPas9TNuKP6o++j8KPl
tcS83Lm5o6yyosfSycbT2rj5vt3X1Ly606bTw7XEzNi148il1/bTxbuvtcTIy6GjDQo+IA0KPiAt
LS0tLdPKvP7Urbz+LS0tLS0NCj4gt6K8/sjLOiBweXRob24tY2hpbmVzZS1ib3VuY2VzQGxpc3Rz
LnB5dGhvbi5jbiBbbWFpbHRvOnB5dGhvbi1jaGluZXNlLWJvdW5jZXNAbGlzdHMucHl0aG9uLmNu
XSC0+rHtINbcuqPOxA0KPiC3osvNyrG85DogMjAwNMTqNdTCMjbI1SAxODowMw0KPiDK1bz+yMs6
IHB5dGhvbi1jaGluZXNlQGxpc3RzLnB5dGhvbi5jbg0KPiDW98ziOiBSZTogW3B5dGhvbi1jaGlu
ZXNlXcjnus7QtNK7uPbTw1dlYtDOyr3kr8DA0ru0zqOsvs3E3LOj16HE2rTmtcSzzNDyo78NCj4g
DQo+ILrHusejoaOssru6w9Liy7yjrNXiuPa+zcrHztLDx9f2tcShow0KPiDE48u1tcS21KOsztLD
x7v5sb7Jz8rHyKuyv9PDWk9QRdbQtcRFeHRlcm5hbCBNZXRob2TBrL3TcHl0aG9us8zQ8qOsyLu6
89PJcHl0aG9us8zQ8rL6yfpodG1syuSz9qGj1NpaT1BF1tDX98HLu7q05qOs09DSu7j2uvPMqLj8
0MKzzNDytqjKsbTTyv2+3b/i0aHU8cr9vt2jrMi7uvO4/NDCtb1aT1BFtcTE2rTmv9W85KOscHl0
aG9us8zQ8tTy1rG907TTxNq05tbQxMPK/b7d1+mzybavzKy1xNKzw+ahow0KPiANCj4g1sHT2rmy
z+3K/b7dv+LBrL3TtcTOyszio6zE47/J0tTPyNC00ru49rzytaW1xMr9vt2/4sGsvdPA4KOsyLu6
88q1wP27r7PJttTP86OsyLu687TTxuTL+7XEcHl0aG9us8zQ8tbQaW1wb3J01eK49rbUz/OjrNPD
1eK49rbUz/O3w87Kyv2+3b/io6y+zdLRvq3Kx7myz+21xMHLoaMNCj4gDQo+INXi1ta5ss/tyv2+
3b/iway907XEt723qMrHu/nT2nB5dGhvbrXEo6zL+dLUsru99tTaem9wZdbQv8nS1KOstvjH0tTa
YXBhY2hlK21vZF9weXRob27W0NKyv8nS1KOoztLDx9PQYXBhY2hlK21vZF9weXRob261xM/uxL/S
ssrH1eLDtNPDtcSjqaGjDQo+IA0KPiANCj4gLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0tLSAN
Cj4gRnJvbTogIlRhbiBMaWh1aSIgPHRvbnlAZXhjaGFuZ2Uucmljc3Nvbi5jb20+DQo+IFRvOiA8
cHl0aG9uLWNoaW5lc2VAbGlzdHMucHl0aG9uLmNuPg0KPiBTZW50OiBXZWRuZXNkYXksIE1heSAy
NiwgMjAwNCA1OjI4IFBNDQo+IFN1YmplY3Q6ILTwuLQ6IFtweXRob24tY2hpbmVzZV3I57rO0LTS
u7j208NXZWLQzsq95K/AwNK7tM6jrL7NxNyzo9ehxNq05rXEs8zQ8qO/DQo+IA0KPiANCj4gvt7B
6bLGvq2jvw0KPiDU9cO01dLIy87KxNijvw0KPiANCj4gLS0tLS3Tyrz+1K28/i0tLS0tDQo+ILei
vP7IyzogcHl0aG9uLWNoaW5lc2UtYm91bmNlc0BsaXN0cy5weXRob24uY24gW21haWx0bzpweXRo
b24tY2hpbmVzZS1ib3VuY2VzQGxpc3RzLnB5dGhvbi5jbl0gtPqx7SBKYWNvYiBGYW4NCj4gt6LL
zcqxvOQ6IDIwMDTE6jXUwjI2yNUgMTU6NTUNCj4gytW8/sjLOiBweXRob24tY2hpbmVzZUBsaXN0
cy5weXRob24uY24NCj4g1vfM4jogUmU6IFtweXRob24tY2hpbmVzZV3I57rO0LTSu7j208NXZWLQ
zsq95K/AwNK7tM6jrL7NxNyzo9ehxNq05rXEs8zQ8qO/DQo+IA0KPiANCj4gLS0tLS0gT3JpZ2lu
YWwgTWVzc2FnZSAtLS0tLSANCj4gRnJvbTogItbcuqPOxCIgPHpob3UuaGFpd2VuQGd0aS5jbj4N
Cj4gVG86IDxweXRob24tY2hpbmVzZUBsaXN0cy5weXRob24uY24+DQo+IFNlbnQ6IFdlZG5lc2Rh
eSwgTWF5IDI2LCAyMDA0IDM6NDEgUE0NCj4gU3ViamVjdDogUmU6IFtweXRob24tY2hpbmVzZV3I
57rO0LTSu7j208NXZWLQzsq95K/AwNK7tM6jrL7NxNyzo9ehxNq05rXEs8zQ8qO/DQo+IA0KPiAN
Cj4gPiDE48u1em9wZbXE0KfCytPQzsrM4qOsxOO/ydLUv7S/tCBodHRwOi8vd2ViZmluYW5jZS5n
dGkuY26jrNXiuPbN+NW+xL/HsLXEyv2+3b/iyN3Bv9LR09AxM0dCLMrHyrnTw3pvcGUrcHl0aG9u
tcTX6brPo6zQp8LK0rKyu7z7su7RvaO/DQo+ID4gDQo+ID4gudjT2tCnwsqjrM7SyM/OqiBhcGFj
aGUrbW9kX3B5dGhvbiDKx3B5dGhvbtbQ1+6/7LXE1+m6z6GjDQo+IA0KPiDKx7Cho6yyu8rH0ruw
47XEv+yhoyA7LSkNCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fDQo+IHB5dGhvbi1jaGluZXNlIGxpc3QNCj4gcHl0aG9uLWNoaW5lc2VAbGlzdHMu
cHl0aG9uLmNuDQo+IGh0dHA6Ly9weXRob24uY24vbWFpbG1hbi9saXN0aW5mby9weXRob24tY2hp
bmVzZQ0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18NCj4gcHl0aG9uLWNoaW5lc2UgbGlzdA0KPiBweXRob24tY2hpbmVzZUBsaXN0cy5weXRob24u
Y24NCj4gaHR0cDovL3B5dGhvbi5jbi9tYWlsbWFuL2xpc3RpbmZvL3B5dGhvbi1jaGluZXNlDQoN
Cg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KDQo+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fDQo+IHB5dGhvbi1jaGluZXNlIGxpc3QNCj4gcHl0aG9u
LWNoaW5lc2VAbGlzdHMucHl0aG9uLmNuDQo+IGh0dHA6Ly9weXRob24uY24vbWFpbG1hbi9saXN0
aW5mby9weXRob24tY2hpbmVzZQ0KPiA=




[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号