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

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://m.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>
            亚洲一级电影| 欧美日本亚洲视频| 亚洲精品欧美在线| 在线欧美电影| 亚洲国产婷婷| 亚洲毛片网站| 亚洲午夜久久久久久尤物| 亚洲一区欧美二区| 欧美在线观看一区| 久久婷婷影院| 欧美电影免费观看| 亚洲国产日韩欧美| 亚洲麻豆一区| 欧美亚洲日本网站| 欧美肥婆bbw| 黄色一区三区| 国产精品一区2区| 尤物九九久久国产精品的分类| 在线观看成人av| 宅男噜噜噜66一区二区| 亚洲欧美在线磁力| 美日韩精品视频| 最新高清无码专区| 欧美一区二区精品在线| 欧美激情一区在线| 国语精品中文字幕| 国产精品99久久不卡二区| 欧美在线综合| 91久久久久久| 久久久噜噜噜| 国产精品夫妻自拍| 亚洲人成在线观看一区二区| 午夜精品久久久久久久白皮肤| 欧美激情第1页| 亚洲少妇自拍| 欧美韩日一区二区| 久久精彩免费视频| 久久久精彩视频| 一本久道久久综合中文字幕| 亚洲视频在线观看免费| 欧美中文字幕视频| 99热在这里有精品免费| 免费观看欧美在线视频的网站| 欧美日韩国产综合新一区| 国内自拍视频一区二区三区| 亚洲免费一级电影| 亚洲国产99精品国自产| 久久精品国产清高在天天线| 欧美性感一类影片在线播放| 亚洲高清成人| 免费在线亚洲欧美| 欧美一区2区三区4区公司二百 | 亚洲日韩欧美视频一区| 香蕉成人啪国产精品视频综合网| 欧美成人高清| 亚洲国产欧美久久| 免费观看成人网| 久久久久久久欧美精品| 一区二区亚洲精品国产| 久久婷婷蜜乳一本欲蜜臀| 亚洲女爱视频在线| 国产精品亚洲产品| 欧美一区二区三区四区高清| 亚洲综合欧美日韩| 国产酒店精品激情| 久久精品九九| 久久精品国产亚洲一区二区| 国产在线精品成人一区二区三区| 欧美中文字幕视频在线观看| 欧美在线看片| 欧美国产日本韩| 欧美大片免费看| 亚洲女人av| 国产精品影音先锋| 午夜亚洲福利| 性18欧美另类| 伊人成人开心激情综合网| 久久久久一区二区| 开心色5月久久精品| 亚洲肉体裸体xxxx137| 亚洲精品国产品国语在线app| 欧美日本二区| 香蕉亚洲视频| 亚洲国产精品ⅴa在线观看| 欧美高清影院| 欧美日韩一二区| 校园激情久久| 可以看av的网站久久看| 亚洲毛片一区| 亚洲一级免费视频| 激情久久婷婷| 亚洲激情在线| 国产欧美日韩91| 欧美不卡福利| 国产精品久久久久一区二区| 欧美一区观看| 欧美成人午夜影院| 亚洲欧美国产一区二区三区| 久久久高清一区二区三区| 日韩视频第一页| 欧美一级艳片视频免费观看| 亚洲黄色一区| 欧美一级一区| 亚洲视频一二| 久久久水蜜桃| 午夜一级久久| 欧美成人嫩草网站| 久久成人免费日本黄色| 欧美国产另类| 免费在线欧美视频| 国产精品网站一区| 亚洲精品偷拍| 亚洲韩国一区二区三区| 亚洲免费中文| 在线视频亚洲| 欧美国产专区| 欧美3dxxxxhd| 国产一区二区黄| 亚洲午夜一区二区三区| 99视频+国产日韩欧美| 久久综合九色99| 久久午夜电影| 国产亚洲激情视频在线| 国产精品99久久久久久久久| 亚洲激情视频网| 久久视频一区二区| 久久久久久网站| 国产亚洲成人一区| 亚洲制服av| 午夜视频一区| 国产精品理论片| av成人老司机| 亚洲小说欧美另类社区| 亚洲精品免费看| 欧美黄色免费网站| 国产午夜精品理论片a级大结局 | 美脚丝袜一区二区三区在线观看 | 亚洲精品一级| 亚洲精品国产精品国自产观看| 久久精品国产成人| 久久成人精品| 国产在线麻豆精品观看| 久久精品99国产精品酒店日本| 欧美在线视频在线播放完整版免费观看| 欧美日韩一区二| 亚洲专区一区| 久久久久久久一区二区| 国产偷久久久精品专区| 欧美一区日本一区韩国一区| 久久精品视频播放| 伊人久久男人天堂| 母乳一区在线观看| 99精品久久久| 欧美在线一级视频| 在线电影欧美日韩一区二区私密| 久久蜜桃精品| 亚洲日本中文字幕| 亚洲欧美国产另类| 国产欧美va欧美不卡在线| 久久精品一区二区| 91久久极品少妇xxxxⅹ软件| 亚洲视频在线视频| 国产一区二区三区日韩欧美| 美女精品国产| 亚洲一区二区精品在线观看| 久久精品1区| 亚洲国产精品国自产拍av秋霞| 欧美另类99xxxxx| 午夜精品视频在线观看一区二区| 免费不卡在线观看| 亚洲欧美第一页| 1024日韩| 国产精品一区二区久久国产| 久久精品国产99国产精品| 亚洲国产视频直播| 久久久精品动漫| 一区二区三区.www| 黄色精品在线看| 欧美四级在线| 欧美fxxxxxx另类| 久久激五月天综合精品| 99re这里只有精品6| 久久夜色精品一区| 午夜精品福利视频| 9久re热视频在线精品| 精品动漫3d一区二区三区| 国产精品久久久久久久久久直播| 久久一区二区三区超碰国产精品| 亚洲少妇中出一区| 亚洲黄色一区| 蜜桃伊人久久| 久久久成人网| 欧美亚洲一区二区在线观看| 9i看片成人免费高清| 亚洲国产黄色片| 激情综合在线| 国产亚洲观看| 国产精品豆花视频| 美女黄毛**国产精品啪啪| 国产精品一区二区久久|