Python论坛  - 讨论区

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

2004年05月27日 星期四 11:39

Tan Lihui tony at exchange.ricsson.com
Thu May 27 11:39:41 HKT 2004

Zope我还不熟,问周海文吧。
我用mod_python + webware,到处都可以import,但他确实是共享的。

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

如果用Zope,写好SHARE.py之后是否要使用/Control_Panel/Products/PythonScripts  的Import功能? 还是直接在程序中Import?

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


> 不,确实是共享的。因为象mod_python或者zope之类的app serv,是在
> 启动的时候import所有的module的。
> 
> 只要每个使用db connection的程序import的语句一样的(也就是namespace是一样的),它就不会重复import很多个的。要检验这个也很简单,只要在mysql的源代码里面链接mysql_connect()或者mysql_realconnect()里面,打印一些东西。就能看到。
> 
> 
> -----邮件原件-----
> 发件人: python-chinese-bounces at lists.python.cn [mailto:python-chinese-bounces at lists.python.cn] 代表 The UnderTaker
> 发送时间: 2004年5月27日 9:45
> 收件人: python-chinese at lists.python.cn
> 主题: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?
> 
> 這樣還不是每import一次就建立一個連接嗎?它不可能永遠保持單一數據庫聯接吧
> 
> ----- Original Message ----- 
> From: "周海文" <zhou.haiwen at gti.cn>
> To: <python-chinese at lists.python.cn>
> Sent: Thursday, May 27, 2004 9:10 AM
> Subject: Re: [python-chinese]如何写一个用Web形式浏览一次,就能常住内存的程序?
> 
> 
> > 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ÚtaBaseParent("ODBC_DSN_NAME/sa/sa")            #关系数据库连接对象
> > except:
> >     raise 'db connect error'
> > 
> > 
> > 
> > #file: other.py
> > from SHARE import db         #导入数据库连接对象
> > def getContent():
> >     lT,iNÛ.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
> 
> 
> --------------------------------------------------------------------------------
> 
> 
> > _______________________________________________
> > 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日 星期四 11:52

info at xichen.com info at xichen.com
Thu May 27 11:52:30 HKT 2004

python-chinese,您好!

	        昨天服务器被攻击。折腾了一天,我在前面家了个freebsd的防火墙,然后将后面的2k发布出去。
BT我继续做种子,刚开。上传 180k/s
                                      

        致
礼!
 				

        info
        info at xichen.com
          2004-05-27

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号