青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

hdqqq

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  35 隨筆 :: 0 文章 :: 104 評論 :: 0 Trackbacks
共2頁: 1 2 
@Chipset
麻煩看清楚文章再噴
12 行沒檢查返回值
53 行 new 一定成功嗎
在alloc和free中看到了new和delete,這種分配不會是o(1)的。
re: 被delete難倒了[未登錄] hdqqq 2011-04-01 11:32
如果樓主使用 /mt 編譯,dll啟動時使用自己的堆, 在主程序中new 出來的對象,再通過指針傳給dll,然后在dll中釋放,會產生錯誤,主程序和dll使用不同的堆。
* 查找光標當前單詞
gd 查找光標單詞定義
ga 顯示光標下字母ascii碼
比較討厭這種引用計數指針的使用,一旦使用就意味這在所有的函數參數中必須使用指針引用或者值拷貝,一旦某些函數要求用裸指針,就可能引發問題。
文件映射無助于增加進程可用地址空間。除非你修改set的實現,把對節點的訪問直接
對應到對文件的訪問,但是在大數據量的情況下,隨機訪問的效率很差。

關鍵還是在于減少內存的使用上

1. stl 中的set使用紅黑樹實現的,一個節點有左,右,父節點三個指針和一個紅黑標志位.32位系統下最少占用13個字節,
考慮內存對齊下,可能使用到16個字節,在大數據量的情況下,為了保持這個樹結構,額外使用的內存是很多的,可以考慮使用hash set.

2. url長度都比較長,可考慮計算md5 hash,減少存儲占用.

3. 不要妄想把所有數據都存在內存,總會有內存耗盡的時候,另外,如果程序異常或者崩潰,所有數據將丟失.

我以前實現的一種方式是,以數據庫為主要存儲,內存作為優先查詢cache.
1. 數據庫建散列表, 以十六進制 0-F 開始,根據md5第一位決定存儲表,用于存儲md5值,并對md5建索引加快查詢.
2. 在內存中用set或map保存md5值,查詢時先計算url md5值,再查詢內存,如果不存在,則從數據庫加載.如為新url,先存入內存.
3. 內存總量到一定閥值,進行數據保存,并清空內存cache.

不過這種實現存在cache命中問題,你可以一次加載整張表,也可以用 like 查詢條件,減少數據庫返回的記錄數.

已有的php實現,內存cache200萬條記錄,總內存使用在1200M左右,可長時間運行,沒有內存使用問題.
麒麟感覺就是參照freebsd搞的,看top的顯示就知道了,可以說是一抹一樣.
可能就是直接拿過來調了一下。
配置文件中增加
imap <F3> <Esc>gg=G
或者
nmap <F3> gg=G
以后一鍵搞定.
@hdqqq
上面已經貼了類似的,我的作廢。
unsigned long val ;
int count = 0;
while(val) {
count += (val & 1) ;
val >>= 1;
}
用協議棧代碼和ace代碼對比欠妥,基礎層要提供的接口和要實現的功能相對固定,而在應用層上,要復雜很多。
照著樓主的代碼,果然有問題,麻煩樓主以后寫代碼或者轉文章對讀者負責一下,最煩這種轉文章的,搞的搜索結果都一樣,都是轉帖的。
re: 邪惡的Windows[未登錄] hdqqq 2009-07-31 17:25
你有命名MessageBox的權利,條件是別去包含 <windows.h>
既然你包含了這個文件,那就乖乖換名字吧。
涉及的東西太多了,有些還不完善,線程庫在windows下只是簡單的封裝,連優先級調整都沒有,線程局部存貯沒有編譯開關。
這個和include .h 文件有啥區別,后綴不同而已。
是啊,所以我讓你看
typeid(std::string()).name()
的輸出.
typedef void (type_func)(void);
typedef void (*ptype_func)(void);

template <typename T>
class template_class
{
private:
typedef T local_type;
public:
template_class()
{
std::cout << typeid(local_type).name() << std::endl;
}
};

void test()
{
template_class<int> la;
template_class<type_func> lg;
template_class<ptype_func> lb;
template_class<int()> le;
template_class<int(int)> lf;
template_class<int(int())> lc;
template_class<void()> ld;
}

上面的代碼可編譯通過
std::string() 也可以看作是一個類型.

long test(void);
sizeof(test) 和 sizeof( test() )
前面一個是 函數指針, 后面一個是 test 的返回值 long.

你可以看看這個的輸出.
std::cout << typeid(std::string).name() << std::endl;
std::cout << typeid(std::string()).name() << std::endl;

在下面這句話里
boost::function<std::string()> func(Test);

這個std::string 的變量根本不會被構造, 所以不存在 所謂的實例.
re: C 還是 CPP[未登錄] hdqqq 2009-04-10 18:41
@Lingol
可能我舉得例子太簡單了,在編譯時候沒開優化的情況下,是不會精簡代碼的.在復雜的情況下,如果 funcb被這個類的某個虛函數依賴.
如:

class CTestClass
{
public:
CTestClass(void);
~CTestClass(void);
public:
void mem_func1();
void mem_func2();
virtual void vfunc();
};


int test_function(int);

static int glob_val;

CTestClass::CTestClass(void)
{
glob_val = 10;
}

CTestClass::~CTestClass(void)
{
glob_val = 0;
}

void CTestClass::mem_func1()
{
glob_val = 1;
}

void CTestClass::mem_func2()
{
printf("hello world\n");
}

void CTestClass::vfunc()
{
mem_func1();
}


int test_function(int val)
{
int ret = val;

CTestClass lt;
lt.mem_func2();
return ret;
}
用vs2003把
上面的代碼被編譯成了lib,在main函數中調用
test_function(atoi(argv[1]));開啟全部優化,在生成的map文件中顯示

_main 00401000 f comple_test.obj
??0CTestClass@@QAE@XZ 00401020 f complie_lib:TestClass.obj
??1CTestClass@@QAE@XZ 00401040 f complie_lib:TestClass.obj
?mem_func1@CTestClass@@QAEXXZ 00401060 f complie_lib:TestClass.obj
?mem_func2@CTestClass@@QAEXXZ 00401070 f complie_lib:TestClass.obj
?vfunc@CTestClass@@UAEXXZ 00401080 f complie_lib:TestClass.obj
?test_function@@YAHH@Z 00401090 f complie_lib:TestClass.obj

可以看到,盡管只調用了構造,析構和mem_func2,mem_func1 還是連接在里面.

re: C 還是 CPP[未登錄] hdqqq 2009-04-07 23:12
我說的這個程序,它的用途是和一些數據打包后,需要在客戶機器上直接運行,不需要安裝或依賴額外的dll,就像直接運行的電子書或者demo啥的,如果試想程序有上兆,數據才幾百k是不是有點浪費,而且以后還可能制作成千上百個的文件,累計起來是很可觀的,執行文件大小和效率一樣重要. 另外 crt用dll的話,vc6的crt dll基本上windows系統都有,但是vc2005的crt就不是每個系統都有的,你需要另外裝個vc2005 redistributable. 至于庫的問題,程序的配置文件,一開始用的是一個跨平臺的xml解析lib, 開始的時候運行的很好,但是當配置文件在600K以上的時候,效率慘不忍睹,后來算了,改為直接結構化讀寫,一樣解決問題,我寫這篇文章的目的,不是說啥庫都不用,而是不要濫用,模版也一樣,在做程序規劃的時候,在寫程序的時候,多用用 "奧卡姆剃刀".
re: C 還是 CPP[未登錄] hdqqq 2009-04-05 19:27
效率還是很重要的,打個比方,客戶要輛自行車,一個手工作坊弄了輛捷安特出來,一個號稱全能的車間弄了輛28吋永久出來,你說那個更好,我寫這篇文章的目的,是想說在寫代碼的時候,用到某項功能或者庫的時候,你需要清楚地了解,你會付出哪些代價,并且權衡一下,如果沒有使用的必要,就不要用.對于一個新開發的項目來說,沒有對比,也許還不是很突出,但是對于已有項目來說,是一個很重要的問題.
多謝反饋意見.
這個錯誤是
ts.WriteLine(external.menuArguments.document.selection.createRange().text);
這句代碼有問題,缺省打開的是ascii文件, 改成uncode模式打開文件就好了.
修改后的代碼

<script language="javascript">
var fso,ForAppending,ts;
var t_str;
fso=new ActiveXObject("Scripting.FileSystemObject");
ForAppending = 8;
ts = fso.OpenTextFile("c:\\collect.txt",ForAppending, true, -1); //在這里是一個絕對路經,用的時候必須修改
t_str = external.menuArguments.document.selection.createRange().text;
ts.WriteLine(t_str);
ts.WriteLine("#########################");
ts.close();
</script>
任務只是抽象意義上的需要運行的代碼,函數和成員函數只是對于人來說的,對于機器來說,都是一樣的,至于已有函數滿不滿足接口我想是架構需要考慮的問題,其實一旦代碼編譯好了,其調用方式就定了,如果非要滿足所有的調用方式,可能rpc或者com的方式更適合一些。
我以前寫的關于 函數和線程方面調用的文章。

http://blog.csdn.net/hdqqq/archive/2005/06/29/407674.aspx
其實不一定要過度追求線程實現,一般的實現方式是啟動幾個線程提供對外服務,有任務提交后,分配運行。這樣可伸縮性也比較強。
re: boost 1-35編譯[未登錄] hdqqq 2008-07-16 17:13
你到linux下編譯一下就知道了,不帶版本號的是一個鏈接,但是在windows下不支持,所以有兩個了,用鏈接的好處就是可以隨時升級新的版本.
c++編譯的時候,對函數名進行修飾,用于實現函數充載,而c里面沒有這個,所以需要用extern “C” 在對頭文件進行聲明的時候加以區分。這個用于鏈接的時候進行函數名查找。
re: 可愛的Vim[未登錄] hdqqq 2008-05-26 10:56
vim 是控制臺程序,所以可以遠程登錄后進行文件編輯,這點上windows下的編輯器根本沒這個功能.

vim用熟了,鼠標根本用不著,很靈活.
@苦惱
我寫的爬蟲,主要的幾個類都在代碼里面了,你用java開發的話,關鍵還是找到對應的功能,象map或者hash map, http下載, 正則表達式等功能的類或者庫,還有就是處理數據庫的模塊,應該可以實現的.
是的,那些在javascript中的url比較難用正則表達式概括出來,因為還可能是根據變量生成的,所以就直接過濾了.

至于排重的問題,因為我計算的是url的md5,而不是整個html的md5,所以在碰到頁面更新而url不變的時候,會有問題.這個我在測試新浪新聞首頁的時候,發現盡管新浪新聞首頁的url不變,內容會變,但是具體到其中的某條新聞,都是有單獨的url的.碰到這種情況,只要周期的運行一下爬蟲就可以了,我現在的機器上就是用crontab 定時運行的.

這個也和爬蟲的目的有關系,有的可能更關注某個具體站點,有的也許想多爬一些站點,這個是深度和廣度的關系,和使用者的策略有關.

我現在用的是一張表記錄歷史記錄,在百萬數量記錄下,效率不是最好的,建立更小的的分布存儲表可能會更好一些. 這些可以部署架構方面進行改進.
郵件已經發了.
@TD
是的,如果開始的時候指定vector是可以的,但是限定了vector的大小。
不用vector是考慮到在大數據量的情況下,vector會進行內存的拷貝復制,所以采用了list
re: OOP的黃昏[未登錄] hdqqq 2007-12-07 18:31
標題取的和內容沒啥聯系。看了標題跑進來,原來在將concept。
extern "C" 之后,就不能重載函數了,關鍵還是函數名修飾的問題.
如果隱藏私有的數據成員,會不會造成實現代碼中sizeof(class) 和使用該類時sizeof(class) 大小不同, 導致數據出錯.
裝個beryl 弄個立體桌面,比vista 酷多了.
loki for vc6 我已經上傳了,下載地址.
http://www.shnenglu.com/Files/hdqqq/lokiVC6port.zip
我這里有,留個mail地址我發給你.
跨平臺的數據庫操作接口,比較難實現.
類似于Format的用法可以象下面這樣,只是少了格式字符串
make_str("當前計數:",100,"總計數", 150);
至于效率的問題,確實是沒有sprintf這種直接操作的函數快,因為涉及到返回的拷貝復制的開銷和stringstream的內部實現等制約.
這些函數的目的只是為了生成字符串,至于是顯示出來還是寫入文件,是看需求的,功能就象cstring 的format 成員函數.
re: 數組取大小[未登錄] hdqqq 2007-06-15 11:42
這個倒是沒考慮過.
你可以取看看boost中的preprocessor 部分,講的是預處理元編程,你這個宏的功能和boost 中的BOOST_PP_ENUM_PARAMS 宏功能類似.
共2頁: 1 2 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区三区三区在线| 一区二区三区日韩欧美精品| 性色av一区二区三区| 亚洲一区二区三区精品视频| 国产精品视频午夜| 欧美一区二区国产| 久久精品99无色码中文字幕| 最新精品在线| 一本久久综合| 国产亚洲精品aa午夜观看| 亚洲视频大全| 欧美亚洲三区| 亚洲第一主播视频| 亚洲人成毛片在线播放女女| 欧美成人精品一区二区| 亚洲一区成人| 久久久久久久久岛国免费| 1000部国产精品成人观看| 亚洲人成网站在线播| 国产精品网站在线播放| 欧美成人高清视频| 国产精品v日韩精品v欧美精品网站| 欧美一区在线视频| 嫩草国产精品入口| 欧美一区二区三区播放老司机| 久久久之久亚州精品露出| 一区二区三区日韩欧美| 久久久久久久精| 亚洲欧美电影在线观看| 久久精品亚洲乱码伦伦中文 | 午夜久久久久久久久久一区二区| 亚洲二区在线视频| 亚洲欧美国产毛片在线| 亚洲日本欧美日韩高观看| 欧美一区二区免费观在线| 夜夜狂射影院欧美极品| 久久久国产亚洲精品| 亚洲欧美成人网| 欧美成人在线网站| 久久香蕉国产线看观看av| 国产精品久久久久久久久久免费| 欧美电影在线播放| 国产午夜一区二区三区| 夜夜狂射影院欧美极品| 亚洲免费成人av| 久久综合网络一区二区| 久久婷婷国产综合尤物精品| 国产精品一区毛片| 亚洲日本无吗高清不卡| 亚洲日本中文字幕| 美女诱惑黄网站一区| 久久午夜精品一区二区| 国产日韩欧美精品一区| 亚洲专区一区二区三区| 亚洲影视在线播放| 欧美午夜片欧美片在线观看| 99re6这里只有精品| av成人天堂| 欧美日韩一区二区三区在线| 亚洲国产精品视频| 亚洲黄页视频免费观看| 免费看黄裸体一级大秀欧美| 免费永久网站黄欧美| 黄色精品一区| 久久精品一区二区三区中文字幕| 久久精品人人做人人综合| 国产午夜精品一区二区三区视频 | 激情另类综合| 久久久久国产精品人| 免费观看亚洲视频大全| 久久高清国产| 亚洲免费久久| 欧美高清视频一区二区| 亚洲人www| 一区二区三区国产在线观看| 欧美日韩国产电影| 中文av一区二区| 欧美在线观看视频一区二区| 韩日欧美一区| 女女同性女同一区二区三区91| 欧美激情亚洲视频| 一区二区高清在线观看| 欧美亚日韩国产aⅴ精品中极品| 亚洲一区国产| 免费观看成人| 亚洲天堂网站在线观看视频| 国产日韩欧美精品一区| 老司机免费视频一区二区三区| 亚洲日本欧美| 久久国产精品99国产精| 亚洲高清精品中出| 欧美性大战xxxxx久久久| 欧美一级黄色网| 亚洲国产精品久久人人爱蜜臀 | 一区二区三区国产盗摄| 国产精品视频久久久| 久久久久久电影| 一本色道久久综合狠狠躁篇的优点 | 久久视频免费观看| 亚洲乱码精品一二三四区日韩在线 | a4yy欧美一区二区三区| 久久精品国产一区二区三区| 亚洲全黄一级网站| 国产日韩久久| 欧美日韩黄色大片| 久久精品亚洲乱码伦伦中文 | 亚洲一区二区黄色| 亚洲电影免费观看高清| 性色av一区二区三区红粉影视| 亚洲国产婷婷香蕉久久久久久99| 国产精品免费观看视频| 免费在线日韩av| 欧美伊人久久| 亚洲午夜性刺激影院| 欧美成人国产一区二区| 久久se精品一区二区| 亚洲一区二区成人在线观看| 红桃视频一区| 国产日韩av在线播放| 欧美日韩国产在线看| 久久一二三区| 欧美在线视频免费播放| 正在播放亚洲| 亚洲精选在线| 亚洲国产毛片完整版| 欧美xxx在线观看| 久久午夜激情| 久久久久国产成人精品亚洲午夜| 亚洲宅男天堂在线观看无病毒| 亚洲区国产区| 在线免费高清一区二区三区| 激情久久五月天| 韩日成人av| 欧美一区免费视频| 麻豆91精品| 久久最新视频| 老色批av在线精品| 久久久www成人免费精品| 久久精品天堂| 久久免费视频一区| 久久琪琪电影院| 免费av成人在线| 欧美成人视屏| 欧美激情精品| 亚洲精品女av网站| 亚洲第一区中文99精品| 欧美成人精品三级在线观看| 欧美成人综合一区| 欧美激情第9页| 最近中文字幕日韩精品 | 亚洲视频欧美视频| 亚洲午夜精品一区二区三区他趣| 中文精品视频| 午夜国产精品影院在线观看| 久久成人久久爱| 另类图片综合电影| 欧美日韩大片| 国产精品视频久久| 国产亚洲女人久久久久毛片| 黄色综合网站| 日韩视频永久免费观看| 午夜国产精品影院在线观看| 久久精品在线观看| 欧美好骚综合网| 在线午夜精品自拍| 久久不见久久见免费视频1| 美女视频黄 久久| 欧美午夜不卡在线观看免费| 国产亚洲精品美女| 亚洲三级免费观看| 欧美亚洲在线播放| 欧美成va人片在线观看| 亚洲美女av电影| 午夜精品亚洲| 欧美另类变人与禽xxxxx| 国产精品视频一二| 亚洲人成网站色ww在线| 亚洲欧美一区二区原创| 久久乐国产精品| 一本色道久久88亚洲综合88| 久久久久久亚洲精品中文字幕| 欧美精品一区视频| 国产亚洲一区二区精品| 99国产精品视频免费观看一公开| 欧美中文字幕在线| 亚洲另类自拍| 久久精品五月| 国产精品一级| 亚洲乱码视频| 久久亚洲国产精品一区二区| 一区二区三区.www| 久久综合网色—综合色88| 国产精品一区二区a| 一本色道久久综合一区 | 一区二区三区免费网站| 欧美波霸影院| 欧美在线视频免费播放| 国产精品二区二区三区| 9i看片成人免费高清| 免费成人在线观看视频|