*****===數值溢位問題*****===
對於客戶端上傳的敏感引數,比如金錢,經驗等,伺服器通常會驗證正負值,防止扣負值的情況發生。
在此基礎上,要注意另外兩種高階的溢位情況:
案例1: 玩家有n點屬性可分配點,可以隨機分配給各個基礎屬性。客戶端上傳每種基礎屬性分配情況,伺服器判斷每個分配點為非負數,判斷總分配點總和小於等於可分配點數
問題數值 :分配屬性1的值 = 二十億,分配屬性2的值 = 二十億。
伺服器判斷:二十億》=0 ; 兩個二十億相加,得到乙個溢位的負數,負數<= 可分配點數10 ; 判斷條件都成立
結果:屬性被刷爆
案例2: 玩家購買物品,帶物品個數引數
物品個數沒有限制時,產生乘數溢位
伺服器計算消耗金幣 = 物品單價 * 物品個數 結果溢位
應對方案:
方案1: 多加判斷,對於和值和乘積,都判斷正負
方案2: c#使用關鍵字checked,溢位時丟擲overflowexception異常
專案原來使用mysql,啟動伺服器時,匯入資料邏輯為:
每次讀取一萬條資料到記憶體:select * from tablename where id > @startid limit 10000
取到最後乙個id賦值給@startid,繼續讀取下面的資料。
出錯原因:
mysql是順序讀取,不會產生問題
spider由於是分布式系統,幾個子節點並行且無序上傳讀取的資料,滿足10000條時停止。此時取出的資料不保證連續,導致有部分資料載入失敗(希望取出1 2 3 4,實際取出 1 3 4 6,下一輪從》6取資料,丟失 2 5)
應對方案:修改查詢語句 select * from tablename where id > @startid order by id asc limit 10000
不定期更新。。。
基於IBM BladeCenter伺服器整合方案
ibm bladecenter 是名副其實的刀片中心,因為在乙個7u的機箱中不僅能容納14臺刀片伺服器外,還能夠整合兩個20口光纖交換機,兩個18口7層乙太網交換機,四個2000瓦電源模組,2個14口kvm和兩個大功率集中冷卻風扇。ibm刀片中心通過革新的模組技術幫助客戶在當前搞競爭的it環境中提供...
機器學習錯題集
1.線性分類器有三大類 感知器準則函式 svm fisher準則,而貝葉斯分類器不是線性分類器。感知器準則函式 代價函式j w x w0 分類的準則是最小化代價函式。感知器是神經網路 nn 的基礎,網上有很多介紹。svm 支援向量機也是很經典的演算法,優化目標是最大化間隔 margin 又稱最大間隔...
C C 練習錯題集
單選題 若int 佔 2 個位元組,char 佔 1 個位元組,float 佔4 個位元組,sizeof xc 大小是 struct stu class char xm 8 float cj xc sizeof xc 大小是 20 記憶體對齊規則 結構體的總大小為結構體最寬基本型別的整數倍 聯合體裡...