Re: [閒聊] 由 mud 產生 html 檔

看板mud_sanc作者 (漫雲端)時間15年前 (2009/02/04 12:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/6 (看更多)
※ 引述《laechan (小太保)》之銘言: : str="<body>\n"+ : "<tr><td>等級</td><td>Id</td><td>暱稱</td></tr>\n"+ : "<tr><td>"+ppl->query("level")+"</td><td>"+ppl->query("name")+ : "</td><td>"+ppl->query("chi_name")+"</td></tr></body>\n"; : 如果要顯示一個 1000 行的資料,上面的寫法是不行的,因為太多的字 : 串累加,除非是單機型的 mud 不然是跑不動的。 : 變通的方法則是.. : str=sprintf("<body>\n<tr><td>%d</td><td>%s</td><td>%s</td></tr></body>\n", : ppl->query("level"),ppl->query("name"),ppl->query("chi_name")); : 但是要顯示 1000 行的資料可能也會有點吃力。總之,還有其它的方法 : Laechan MudOS 在處理字串累加上效能的確是相當差 有一種作法是先利用字串陣列分批儲存字串後 最後再用 implode efun 一次結合起來 如此可以大量減少 MudOS 內部重覆執行 malloc 與 strcpy 的動作 例: string *texts = allocate(1000); for(int i=0;i<1000;++i) texts[i] = sprintf("anything you want"); return implode(texts, ""); 這樣可以大幅減低單純因文字處理的效能損耗 剩下的效能瓶頸則是卡在 ppl->query 這個 call_other 與 query 的本身運算 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.96.50.65 ※ 編輯: cloderw 來自: 140.96.50.65 (02/11 08:40)
文章代碼(AID): #19YHH8K8 (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #19YHH8K8 (mud_sanc)