亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
打印 上一主題 下一主題

專家座談——Web開發(fā)中你所遇到的性能問題(大獎) [復(fù)制鏈接]

論壇徽章:
0
21 [報告]
發(fā)表于 2011-09-09 12:49 |只看該作者

論壇徽章:
0
22 [報告]
發(fā)表于 2011-09-09 13:01 |只看該作者
1,初學(xué)者怎么入門Web開發(fā)?
初學(xué)者想入門web開發(fā),首先要了解一下web開發(fā)所涉及的方面如程序語言(前臺的,后臺的)。表示方式的如css等,確定義方向后選擇其中一部分弄懂弄精。慢慢的了解全部,最好做到對整個web開發(fā)都能進行,得心應(yīng)手
  
2,你選哪種Web開發(fā)技術(shù),JEE、PHP、.Net、RoR、Django......?,依據(jù)是什么?
我選擇j2ee。但并不是唯一選擇,開發(fā)語言要都多少撐握一些。例如做企業(yè)應(yīng)用方面的web開發(fā)選j2ee相對合適一些。如果做企宣網(wǎng)站用php,.net等開發(fā)效率方面可能會更有優(yōu)勢。

3,如果你是一名Web開發(fā)者,請把你在Web開發(fā)中遇到的性能問題跟大家做個分享。
遇到的最大問題就是高并發(fā)情況下web服務(wù)器負載上不去,造成用戶體驗不好的總況。
解決方法:優(yōu)化系統(tǒng)架構(gòu),改進網(wǎng)絡(luò)布局等。

論壇徽章:
0
23 [報告]
發(fā)表于 2011-09-09 15:03 |只看該作者
1,        初學(xué)者怎么入門Web開發(fā)?
     這個問題比較我是這樣建議的,現(xiàn)在大主流的是 java  asp.net 以后可能會有 python
下面我說下為什么。
   比如我現(xiàn)在懂vb 要不要學(xué)習(xí) asp.net 因為畢竟都是微軟的,可能會有點相同之處,但是你入門了web開發(fā),以后肯定要深入,那就直接確定好要學(xué)習(xí)的語言,可能你喜歡開源等,到時候你要在 asp.net 轉(zhuǎn) java 不是很郁悶?不建議學(xué)php。原因是我個人的看法。不談技術(shù)方面的,單拿 招聘的人數(shù)是 java 和 .net 里面是,企業(yè)級應(yīng)用也好,還是 4大門戶也好,基本都是 java的居多。

2,        你選哪種Web開發(fā)技術(shù)
Java  這個我不說太多了,我本身也是java開發(fā)的。開源也好,大型應(yīng)用也好。
4大門戶都是 java(他們不傻吧)。等,我記得看過一篇文章,忘了是美國的哪個社交網(wǎng)站了,之前是用Rails  開發(fā)的,后臺流量等問題,說要換java
3,        如果你是一名Web開發(fā)者,請把你在Web開發(fā)中遇到的性能問題跟大家做個分享。
我這個問題是一個數(shù)據(jù)接口的并發(fā)問題。
  我們公司業(yè)務(wù)需要,做了數(shù)據(jù)接口,但是測試要求達到 300并發(fā)。
測試結(jié)果:達到 200并發(fā)的時候 已經(jīng)響應(yīng)超時了。
數(shù)據(jù)庫:oracle  記錄數(shù)大概在 萬條數(shù)據(jù)以內(nèi)(因為剛開始,數(shù)據(jù)庫的數(shù)據(jù)很少)
機器:32位 pcServer
這個程序,基本上就是放緩存,如果去同一條數(shù)據(jù),我會先取 Memcatch
最后得到的結(jié)論:這個硬件,就是這個瓶頸。

論壇徽章:
0
24 [報告]
發(fā)表于 2011-09-09 20:29 |只看該作者
我說一個非常重要的程序大局觀!

很多人非常善于陷入代碼里,但是對框架了解不多,就算了解,設(shè)計上也往往有一些不合理的地方!

首先從純程序角度來說,只要你的邏輯和算法是正確的,那不存在性能問題。 有性能問題也是硬件問題,比如你用一臺386電腦做網(wǎng)站,肯定應(yīng)對不了上萬的并發(fā),但是我們的程序卻是最優(yōu)的。

其次非常愚蠢的一個做法就是為了性能犧牲程序的優(yōu)雅。很多網(wǎng)站為了提高性能,把網(wǎng)頁做成靜態(tài)的,每次有內(nèi)容更新都會重新生成靜態(tài)頁面,看起來不錯實際上僅僅是小程序員思想,成不了大事業(yè)。

那到底該怎么辦呢? 我們程序中,有一個非常重要的感念,邏輯視圖和物理視圖。 這點大家都知道。

解決性能問題,同樣應(yīng)該使用這兩個視圖,只要我們的程序?qū)懙耐晟疲壿嬌献顑?yōu)了, 那我們不管系能問題了,而是從物理試圖方面解決性能問題。

代碼放哪里誰也不用動,想辦法從硬件,從硬件構(gòu)架方面解決性能問題,比如使用memcache緩存等。 使用DNS根據(jù)訪問者的地區(qū)不同,把IP解析到不同位置的服務(wù)器,。。。

論壇徽章:
0
25 [報告]
發(fā)表于 2011-09-09 21:42 |只看該作者
本帖最后由 coolesting 于 2011-09-11 11:35 編輯

############################################################
# 1,初學(xué)者怎么入門Web開發(fā)?
############################################################
沒編程基礎(chǔ)從靜態(tài)網(wǎng)頁學(xué)起, 相對簡單, 容易上手, 如html, javascript/jquery, css/sass。
有編程基礎(chǔ)從動態(tài)網(wǎng)頁學(xué)起, (如果沒基礎(chǔ)但想學(xué)動態(tài), 可以從ASP.NET學(xué)起, ASP.NET可能只是過渡, 不一定是你最終的選擇)

因為新人起步, 關(guān)鍵是培養(yǎng)興趣, 打基礎(chǔ)可以邊實踐邊惡補。





############################################################
# 2,你選哪種Web開發(fā)技術(shù),JEE、PHP、.Net、RoR、Django......?,依據(jù)是什么?
############################################################
我愛ruby, 依據(jù)就是, ruby大方得體, 方便好用, 簡單, 可讀性強(有人會反對這點,但對于懂英語又沒編程基礎(chǔ)的人很容易上手)。

我大學(xué)畢業(yè)的作品是用ASP.ENT做的, 畢業(yè)那年看了幾部1000+頁的.NET部頭, 但出來工作第一個項目就是對discuz的維護和二次開發(fā), 基于公司的需要, 我放棄ASP.NET轉(zhuǎn)向PHP, 一眨眼就是三年, 2011年, 五月份, 我第七次重構(gòu)和設(shè)計一個CMF(CMS+FW), 其中我發(fā)現(xiàn)二個問題(以前遇到過, 但這次特別嚴(yán)重), 第一, PHP本身性能。 第二, PHP代碼極丑, 多余累贅的代碼, 在大量閱讀和維護時極影響效率,  以始同時, 我在設(shè)計一個新的模板引擎, (我叫它nohtml) 就是把html的邏輯從html的標(biāo)簽中分離, 方便維護和html各版本的兼容, 后來這個項目流產(chǎn)。  因為我這個CMF設(shè)計過程中要去別的框架和語言尋找靈感, 我發(fā)現(xiàn)了python, 覺得它非常優(yōu)雅, 又因為python, 我認識了ruby, 最終選擇了ruby。






############################################################
# 3,如果你是一名Web開發(fā)者,請把你在Web開發(fā)中遇到的性能問題跟大家做個分
############################################################
1. 問題前言:
影響web性能比較多, 首先把它切割為硬件和軟件二塊, 這分別映射為靜態(tài)和動態(tài)網(wǎng)頁,
如果把整個項目都靜態(tài)化, 在高并發(fā)下仍然撐不住, 這基本就是硬件問題, 軟件就是操作系統(tǒng)問題。
隨著六前年web2.0和SNS的風(fēng)起云涌, 恐怕Web應(yīng)用上真正的性能瓶頸在于項目的復(fù)雜性和實時性。



2. 問題分析:
影響web性能有幾點:
  • 硬件, 如內(nèi)存, 處理器, 網(wǎng)路帶寬布局
  • 操作系統(tǒng)的I/O, 如不同的操作系統(tǒng), 不同的文件處理, 儲存格式, 文件壓縮
  • 服務(wù)器應(yīng)用,如nginx做反代理, lighttpd做靜態(tài)文件
  • web接口, 如cgi, fcgi的設(shè)計
  • 數(shù)據(jù)庫應(yīng)用, sql優(yōu)化, 分表, 表的設(shè)計等等
  • 軟件應(yīng)用, 語言, 框架/軟件系統(tǒng)等

這里結(jié)合我對設(shè)計CMF的過程,并對第6點的復(fù)雜性和實時性結(jié)合實例進行談探。

任何一個強大鍵壯的項目都是經(jīng)過無數(shù)次的重構(gòu), 無數(shù)次架構(gòu)調(diào)整, 維護開發(fā)得出來的, 但這個過程是一個鏈鎖反應(yīng), 開始一個項目的架構(gòu)設(shè)計不行, 隨著后期大量的應(yīng)用插入(無論是第三方還是自身) 這好比堆疊代碼一樣, ,要增加一個功能就往文件里寫一個方法, 一個類, 堆的代碼越多, 特別是在邏輯陣亂插代碼, 項目運行起來越慢, 越難維護, 因為本身架構(gòu)的設(shè)計限制了軟件應(yīng)用的彈性。

以Discuz X為例, 懂PHP的都知道, 拿這個來二次開發(fā), 極為頭痛(相對剛接觸discuz的新手), 其實這個就是ucenter, uchome, discuz... 堆在一起的杰作。
------ 架構(gòu)設(shè)計問題影響項目的開發(fā)和維護

以Drupal 為例,這個CMF功能眾所周知的強大, 應(yīng)用架構(gòu)設(shè)計不錯, 但復(fù)雜的功能嚴(yán)重影響了性能, 僅僅是主頁就三十多條sql查詢。
------- 隨著復(fù)雜的應(yīng)用帶來的性能問題

以Dedecms 為例, 一個門戶型CMS, 把大部分頁面靜態(tài)化以達到最好的速度性能。
------- 因為靜態(tài)頁面, 基本沒什么實時性可言, 文章要修改得重新生成一個靜態(tài)頁

以上三個案例都是相對來默認版本設(shè)定情況, 要自己可以修改和優(yōu)化處理才能達到最佳的性能。



3. 問題處理和結(jié)果 :
對于小網(wǎng)站沒什么優(yōu)化可言, 那么我們來討論高并發(fā)的。
首先, 服務(wù)器對應(yīng)用的處理, 數(shù)據(jù)庫的分表分段, 操作系統(tǒng)的I/O處理和文件壓縮, 這些請用google。

我們針對以上第2點提出的問題來研究,一個應(yīng)用的復(fù)雜性和實時性如何優(yōu)化。

首先, 我們把一個應(yīng)用切分為好幾個版本, 或者叫階段, 如測試, 開發(fā), 產(chǎn)生。
產(chǎn)生階段是整個應(yīng)用最穩(wěn)定時期, 性能達到當(dāng)前版本最好狀況,
開發(fā)和測試階段就是對一個項目應(yīng)用進行升級和維護時期, 為了實際性的測試, 我們可以在用戶在線最少的時候?qū)⒄麄項目切換到這個開發(fā)版本, 以減少對用戶使用不便的影響。 (等測試版本達到穩(wěn)定階段才正式投入生產(chǎn))

復(fù)雜的應(yīng)用, 邏輯層的類和方法, 顯示層的連接和塊模型很多, 我們分別建一個表把所有的應(yīng)用標(biāo)記上, 每當(dāng)用戶點擊一個事件, 就記錄一次, 相當(dāng)于把所有url的路由記錄下來分析, 看什么應(yīng)用是點擊最多, 什么應(yīng)用點擊最少, 點擊最多的部份我們把它獨立出來, 如果不能靜態(tài)處理又要實時性, 則memcache+background進程多層處理, 在保證數(shù)據(jù)的實時性同時, 我們對點擊少的全靜態(tài)化, 如果ajax調(diào)用實時數(shù)據(jù)還要注意對seo的影響進行特別的處理。 (具體怎么做, 這涉及到所使用的語言和框架, 以及自身的特性, 就不長篇大論了)

這里以chinaunix為例, 用一個如何用實時性解決一個web應(yīng)用性能瓶頸的問題。
假設(shè)這個discuz論壇在發(fā)帖時要增加一個tag功能, 但以chinaunix以帖子目前數(shù)量, 這個tag假定可能上萬個, 或者更多, 這個功能要在帖子提交時檢查一遍這些tag, 如果用戶當(dāng)前貼子添加的tag不存在, 那必需創(chuàng)建一個。
并假設(shè)這個操作需要花三秒鐘(操作多,數(shù)據(jù)量大時可能要花更長時間), 但對于常規(guī)用戶發(fā)個帖子要等三秒的提交時間是什么概念, 可能非常痛苦(如csdn)。

那么我們可以這樣, 用ajax來提交帖子, 因為這個操作并不影響seo, 瀏覽器兼容問題可以用js平穩(wěn)退化解決,
我們這個ajax提交, 在顯示層的操作可以是先假定用戶能正常提交帖子, 并顯示提交結(jié)果的操作, 然后把要提交的數(shù)據(jù)送回服務(wù)器讓一個background進程去處理, 那么現(xiàn)在我們提交帖子的速度一下提升到零點幾秒(對用戶而言), 至于后臺的進程要花多少時間去處理這個帖子, 那就后臺的工作了, 這個工作無論是三秒還是五秒, 只要用戶感覺起來永遠都是零點幾秒就算成功。



4. 經(jīng)驗教訓(xùn)總結(jié):
簡單點, 架構(gòu)的設(shè)計很重要, 直接影響到后期的應(yīng)用開發(fā)和維護, 它決定了web應(yīng)用方面的性能。

因為許多php本身特性的問題, 現(xiàn)在我放棄php, 以全心投入對ruby/rack/rails/git/thin等等的學(xué)習(xí)和研究。
開始, 我想用ruby對原先的php的CMF重寫, 但考慮到“重覆做輪”的問題, 所以決定深入rails。(可見一個語言自身的架構(gòu)對其上層作品和市場的影響)




最后修改于2011.09.11,by coolesting@gmail.com, 歡迎指正錯誤, 提出建議。

論壇徽章:
0
26 [報告]
發(fā)表于 2011-09-11 09:06 |只看該作者
頂ls,哥是來充數(shù)的
竊以為
1,解釋型語言出現(xiàn)的性能問題多在解釋器上,而非script語句上
2,與之類似的是java往往出在jvm上

。。。。。。。。

論壇徽章:
0
27 [報告]
發(fā)表于 2011-09-11 10:30 |只看該作者
性能的高估是個系統(tǒng)工程 。需要一步一步地確定問題,然后根據(jù)自己的情況愛一進行協(xié)調(diào)。

論壇徽章:
0
28 [報告]
發(fā)表于 2011-09-11 10:48 |只看該作者
本帖最后由 coolesting 于 2011-09-11 11:40 編輯

回復(fù) 27# emperor


    解釋型語言和它的解釋器并不一是web性能瓶頸的主要因素, 我們可以參考fackbook怎么處理php。

論壇徽章:
0
29 [報告]
發(fā)表于 2011-09-11 20:11 |只看該作者
############################################################
# 1,初學(xué)者怎么入門Web開發(fā)?
######## ...
coolesting 發(fā)表于 2011-09-09 21:42



    我忍不住說。。這回帖真完整。。

論壇徽章:
10
CU大;照
日期:2013-09-18 15:20:48程序設(shè)計版塊每日發(fā)帖之星
日期:2016-07-21 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-07-30 09:40:01技術(shù)圖書徽章
日期:2014-10-14 16:00:43天蝎座
日期:2013-09-27 17:41:29CU大;照
日期:2013-09-18 15:21:17CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:20:58每日論壇發(fā)貼之星
日期:2016-07-21 06:20:00
30 [報告]
發(fā)表于 2011-09-12 09:27 |只看該作者
回復(fù)  emperor


    解釋型語言和它的解釋器并不一是web性能瓶頸的主要因素, 我們可以參考fackbook怎 ...
coolesting 發(fā)表于 2011-09-11 10:48



    一般的企業(yè),只有一臺服務(wù)器,既是DB服務(wù)器,又是WEB服務(wù)器,甚至這只是一個VPS,或僅僅是虛擬主機。
  在這樣的情況下, 解釋型語言和它的解釋器一定是web性能瓶頸的主要因素
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP