|
|
[原创]帮别人发的,计算机软件安全方向求职.
牛啊。。。。 |
|
|
[推荐]老外的一个工具(有码!)
神马是强名?哪位高位给解释下呀? |
|
|
[新年礼物]2012新年快乐!《看雪论坛精华11》发布下载!
好快啊。。。。新年快乐。 |
|
|
|
|
|
[分享]新年礼物,总算完本的HOOK型调试器rmtdebug
又是一款新调试器么? |
|
|
[原创]飞秋2.5exploit代码与分析[感谢漏洞发布者artake]欢迎大家拍砖
虽然看不懂。但是好强大。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[求助]工作中遇到的一个追求速度的算法,国外有人控制在30秒内,我却要6分钟.
我知道黑盒中的数据总数,然后内存映射文件。。写的时候,发现在x处是分界了,于是 memset(pBuf + pos, byVal, x2 - x1); 这个应该不影响速度,, 那个连续数只能确定在2W左右。但没有一个具体的范围,想动态调整的话,怕意义不大。 |
|
|
[求助]工作中遇到的一个追求速度的算法,国外有人控制在30秒内,我却要6分钟.
先膜拜一下。 我测试将156 301 488的数据量整理出来,得花3.6分钟. 我把步进改为1000和2000和3000效果不大。 改大后,二分时间长。改小后,二分时间短,但前面时间又变长了。 我把你的分析过程一字一字的啃了几遍,我发现我的数学好差。 |
|
|
|
|
|
[求助]工作中遇到的一个追求速度的算法,国外有人控制在30秒内,我却要6分钟.
release 下测试了一组数据: 1000次: 开始时间 : 11694796毫秒, 11694秒 结束时间 : 11696328毫秒, 11696秒 差值:1532 ---------------------------------- 3000次: 开始时间 : 11696328毫秒, 11696秒 结束时间 : 11700640毫秒, 11700秒 差值:4312 ---------------------------------- 5000次: 开始时间 : 11700640毫秒, 11700秒 结束时间 : 11707828毫秒, 11707秒 差值:7188 ---------------------------------- 8000次: 开始时间 : 11707828毫秒, 11707秒 结束时间 : 11719546毫秒, 11719秒 差值:11718 ---------------------------------- 15000次: 开始时间 : 11719546毫秒, 11719秒 结束时间 : 11741390毫秒, 11741秒 差值:21844 ---------------------------------- 20000次: 开始时间 : 11741390毫秒, 11741秒 结束时间 : 11770437毫秒, 11770秒 差值:29047 ---------------------------------- 使用的二分法是60楼的兄弟提供的 |
|
|
[推荐]17173也被盗了。。。
拉登表示对此次脱裤事件负责。。。 |
|
|
[求助]工作中遇到的一个追求速度的算法,国外有人控制在30秒内,我却要6分钟.
那就这样做测试:生成一个500M的文件,文件填充0、1、2、3、4、5这样的数据,连续的数量控制在5W-6W左右(之前说的是2W,这里可以改大点)。每调用一次函数只能取某个偏移的值。 要把所有的分界找出来。看看多长时间。 我这里调用GetPosValue是读硬件上面的数据,实在无法提供测试文件。。。一个函数的调用有几百次IO。 |
|
|
[求助]工作中遇到的一个追求速度的算法,国外有人控制在30秒内,我却要6分钟.
FK [word packed] |
|
|
[求助]工作中遇到的一个追求速度的算法,国外有人控制在30秒内,我却要6分钟.
VOID ReadAll(DWORD m_BoxLength)//遍历并保存到文件或内存
{
DWORD dwPos = 0;
DWORD m_Current = 0;
while(m_Current < m_BoxLength)
{
BOOL IsEnd = FALSE;
DWORD m_HeiPos = m_Current + 20000; //20000为最少重复字符数值
if(m_HeiPos > m_BoxLength)
{
m_HeiPos = m_BoxLength;
IsEnd = TRUE;
}
BYTE m_Vaule = GetPosValue(m_Current);
if(IsEnd == FALSE)
{
while(m_Vaule == GetPosValue(m_HeiPos))
{
m_HeiPos += 20000;
if(m_HeiPos > m_BoxLength)
{
m_HeiPos = m_BoxLength;
IsEnd = TRUE;
break;
}
}
}
if(IsEnd == FALSE)
{
int m_LowPos = m_HeiPos - 20000;
while(1)
{
//int m_MidPos = (m_LowPos+m_HeiPos) / 2; //取中间值
int m_MidPos = m_LowPos + (m_HeiPos - m_LowPos) / 2; //修改:取中间值
if(m_Vaule == GetPosValue(m_MidPos))
m_LowPos = m_MidPos;
else
m_HeiPos = m_MidPos;
if (GetPosValue(m_LowPos) != GetPosValue(m_LowPos + 1))//修改这里的退出条件
break;
//if(m_HeiPos = m_LowPos + 1) //修改后代码
// break;
}
}
memset(pFile + dwPos, m_Vaule, m_HeiPos - m_Current); //pFile是内存映射的文件缓冲指针
dwPos += (m_HeiPos - m_Current);
//SaveVaule(int m_Vaule,int m_SameLength)的作用是将读取到值保存到文件中或内存中,自己写吧
m_Current = m_HeiPos;
}
}
修改了一下并且做了测试。。你的思路和我的应该是一样。也是二分比较相邻的是否不等,并用它来作为退出的条件。 现在这个速度就取决于最少重复次数20000..合理的设置它的值,能有效的控制速度。 谢谢你提供这个算法,比我自己写的二分要好多了。。。学习。。 |
|
|
[求助]工作中遇到的一个追求速度的算法,国外有人控制在30秒内,我却要6分钟.
这,一直没关注了。。马上测试。。谢谢你。 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值