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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2511 | 回復: 6
打印 上一主題 下一主題

正則庫使用中發(fā)現(xiàn)內(nèi)存占用過多問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-02-10 11:36 |只看該作者 |倒序瀏覽
使用linux系統(tǒng)自帶的<regex.h>庫,使用的正則表達式比較長,也比較多,進行正則匹配的URL個數(shù)上億。
發(fā)現(xiàn)在程序運行時,很快內(nèi)存到了400多M,并且緩慢增長,直到程序結(jié)束。
大家遇到過類似問題嗎?請指教。

論壇徽章:
0
2 [報告]
發(fā)表于 2011-02-10 13:18 |只看該作者
regex.h 中text_regex_substr 和 text_regex_replace  動態(tài)分配的內(nèi)存 你free了?

論壇徽章:
0
3 [報告]
發(fā)表于 2011-02-10 13:59 |只看該作者
regex.h 中text_regex_substr 和 text_regex_replace  動態(tài)分配的內(nèi)存 你free了?
crazyshell 發(fā)表于 2011-02-10 13:18



    我使用的是這三個函數(shù)

  1. /* POSIX compatibility.  */
  2. extern int regcomp (regex_t *__restrict __preg,
  3.             const char *__restrict __pattern,
  4.             int __cflags);

  5. extern int regexec (const regex_t *__restrict __preg,
  6.             const char *__restrict __string, size_t __nmatch,
  7.             regmatch_t __pmatch[__restrict_arr],
  8.             int __eflags);

  9. extern void regfree (regex_t *__preg);
復制代碼
最后執(zhí)行的regfree。請問,text_regex_substr 和 text_regex_replace  是指?

論壇徽章:
0
4 [報告]
發(fā)表于 2011-02-10 15:30 |只看該作者
一個是取子串 一個是替換

論壇徽章:
0
5 [報告]
發(fā)表于 2011-02-10 15:35 |只看該作者
請問怎么解決這個問題?現(xiàn)在是先調(diào)用regcomp,然后執(zhí)行上億次regexec,最后調(diào)用regfree。系統(tǒng)只提供了這幾個函數(shù)吧。

論壇徽章:
0
6 [報告]
發(fā)表于 2011-02-10 16:06 |只看該作者
我剛才測了一下,如果把正則表達式改成比較短的,沒有內(nèi)存問題。
現(xiàn)在的問題的正則非常長,是多個正則或在一起的,大家有沒有好辦法。

論壇徽章:
0
7 [報告]
發(fā)表于 2011-02-10 16:17 |只看該作者
我也沒用過很長的正則 以前使用正則基本沒你這種問題,一般就是內(nèi)存沒free掉 其它不清楚了
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(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