GNU版strlen源碼分析

直接操作C標準庫提供的字串操作函數是有一定風險的,稍有不慎就會導致記憶體問題。這周用業餘時間寫了一個小型的安全字串操作庫,但是測試之後才發現自己的實現有很大的效能缺陷。 在Solaris上初步做了一個簡單的效能比對,以下是得到的效能資料(以strlen的資料為例): 當傳入的字串長度為10時,執行100w次: strlen 執行時間是:32762毫秒 my_strlen執行時間是:491836毫秒 當傳入的字串長度為20時,執行100w次: strlen

經典:反轉一個位元組

這道題很古老了,可別將它和大端轉小端混淆了,所謂大端和小端指的是位元組序,而這裡反轉一個位元組說的是位序,演算法更是不勝枚舉,說實話都能達到目的,剩餘的就是看看誰的效率更高了,基本上這是一個最難的問題,高手不是能寫出最美麗的程式而是能寫出既美麗同時效率又是最高的程式,如果一個人寫的程式很美麗,很直觀,只能說明該程式員對語言掌握的很好,但是語言畢竟只是工具,真正做事的是電腦,只有對電腦很瞭解,才能寫出效率最高的程式,正如文學家的文筆很多不如花季少女,但是花季少女永遠也超越不了時代。不管什麼樣的程式

HTTP差錯分類解析

  當使用者試圖通過HTTP或FTP協議訪問一台運行主機上的內容時,Web伺服器返回一個表示該請求的狀態的數字代碼。該狀態碼記錄在伺服器日誌中,同時也可能在 網頁瀏覽器或

迴圈隊列操作

  不是只有排序,二叉樹才叫資料結構,面試栽在基本的數組和隊列,鏈表,棧的有的是!!!本文對迴圈隊列的重要操作作出總結。註:為了避免隊列空和滿兩個狀態混淆, 採用空閑一個位置的方式,即N個元素空間的迴圈隊列最多隻能存放N-1個有效元素。這也是大多數教材的做法。 1) 迴圈隊列初始化:front=rear=0; 2)入隊操作:rear=(rear+1)%size; 3)出隊操作:front=(front+1)%size;

epoll對poll的改進

  Stevens的《unix網路編程》,由於客觀原因,未能跟上Linux的新進展,尤其在linux核心日新月異的今天。本文解釋下Unix的select/poll和linux下的epoll之主要區別。1.  支援一個進程開啟大數目的socket描述符(FD)   

單鏈表翻轉的三個方法

  當然這個算不上是困難的演算法,面試考的也不少,實現起來可以有多種方法,但是你能寫出最優秀的嗎?  大概有這幾種:    reverse1.建立一個單鏈表把原鏈表的內容逐個頭插法插入新鏈表中.從而實現了鏈表的翻轉.    reverse2.建立一個數組把原鏈表的內容copy到數組和新鏈表中.從而實現了鏈表的翻轉.    reverse3.一次遍曆單鏈表,原地將原鏈表翻轉  評註:  reverse1

海量資料處理分析(開發角度)

  筆者在實際工作中,有幸接觸到海量的資料處理問題,對其進行處理是一項艱巨而複雜的任務。原因有以下幾個方面:   一、資料量過大,資料中什麼情況都可能存在。如果說有10條資料,那麼大不了每條去逐一檢查,人為處理,如果有上百條資料,也可以考慮,如果資料上到千萬層級,甚至過億,那不是手工能解決的了,必須通過工具或者程式進行處理,尤其海量的資料中,什麼情況都可能存在,例如,資料中某處格式出了問題,尤其在程式處  理時,前面還能正常處理,突然到了某個地方問題出現了,程式終止了。  二、軟硬體要求高,系統

為什麼是三向交握

1. TCP的三向交握最主要是為了全雙工系統的可靠建立:  如果採用兩次的話,會出現下面這種情況:  比如是A機要連到B機,結果發送的串連資訊由於某種原因沒有到達B機;於是,A機又發了一次,結果這次B收到了,於是就發資訊回來,兩機就串連。傳完東西後,斷開。  結果這時候,原先沒有到達的串連資訊突然又傳到了B機,於是B機發資訊給A,然後B機就以為和A連上了(實際A已經斷開),這個時候B機就再等待A傳東西過去。2.

壓縮演算法概述

一、 行程長度壓縮   原理是將一掃描行中的顏色值相同的相鄰像素用一個計數值和那些像素的顏色值來代替。例如:aaabccccccddeee,則可用3a1b6c2d3e來代替。對於擁有大面積,相同顏色地區的映像,用RLE壓縮方法非常有效。由RLE原理派生出許多具體行程壓縮方法:   1.PCX行程壓縮方法: 該演算法實際上是位映射格式到壓縮格式的轉換演算法,該演算法對於連續出現1次的位元組Ch,若Ch>0xc0則壓縮時在該位元組前加上0xc1,否則直接輸出Ch,對於連續出現N

Hash 函數的常用演算法和應用領域

文章目錄 3.1 C++3.2 JAVA 1.Hash介紹     Hash這個在實現某些功能的經常會用到的資料結構,在java和c++ 裡面都有相應的封裝好的資料結構:C++ STL Map  java 有HashMapTreeMap。計算理論中,沒有Hash函數的說法,只有單向函數的說法。所謂的單向函數,是一個複雜的定義,大家可以去看計算理論或者密碼學方面的資料。用“人

LZ77壓縮演算法

  gzip軟體核心演算法deflate,是LZ77和Huffman壓縮的結合。後者,一般教材都有介紹,本文對LZ77做個簡要概述。  1977年,Jacob Ziv和Abraham Lempel描述了一種基於滑動視窗緩衝的技術,該緩衝用於儲存最近剛剛處理的文本(J. Ziv and A. Lempel, “A Universal Algorithm for Sequential Data Compression”, IEEE Transaction on Information Theory,

slab動態管理記憶體

記憶體管理的目標是提供一種方法,為實現各種目的而在各個使用者之間實現記憶體共用。記憶體管理方法應該實現以下兩個功能:最小化管理記憶體所需的時間最大化用於一般應用的可用記憶體(最小化管理開銷)記憶體管理實際上是一種關於權衡的零和遊戲。您可以開發一種使用少量記憶體進行管理的演算法,但是要花費更多時間來管理可用記憶體。也可以開發一個演算法來有效地管理記憶體,但卻要使用更多的記憶體。最終,特定應用程式的需求將促使對這種權衡作出選擇。每個記憶體管理器都使用了一種基於堆的分配策略。在這種方法中,大塊記憶體(

Dynamo和Bigtable對比研究

前言    雲端運算的概念近期可謂如火如荼,備受關注。我先前聽到“雲”這個名詞時,很是覺得太過玄乎——也不知道它用在哪裡,更不瞭解它如何?,總有霧裡看花的感覺!   

WEB伺服器、應用程式伺服器、HTTP伺服器區別

  WEB伺服器、應用程式伺服器、HTTP伺服器有何區別?IIS、Apache、Tomcat、Weblogic、WebSphere都各屬於哪種伺服器,這些問題困惑了很久,今天終於梳理清楚了:    Web伺服器的準系統就是提供Web資訊瀏覽服務。它只需支援HTTP協議、HTML文檔格式及URL。與用戶端的網路瀏覽器配合。因為Web伺服器主要支援的協議就是HTTP,所以通常情況下HTTP伺服器和WEB伺服器是相等的(有沒有支援除HTTP之外的協議的web伺服器,作者沒有考證過),說的是一回事。  

用於尋找的HASH演算法

文章目錄 3.1 C++ 1.Hash介紹     Hash這個在實現某些功能的經常會用到的資料結構,在java和c++ 裡面都有相應的封裝好的資料結構:C++ STL Map  java 有HashMap TreeMap。計算理論中,沒有Hash函數的說法,只有單向函數的說法。所謂的單向函數,是一個複雜的定義,大家可以去看計算理論或者密碼學方面的資料。用“人 類”的語言描述單向函數就是:如果某個函數在給定輸入的時候,很容易計算出其結果來;

各種排序演算法比較

關於冒泡最優情況說明一下,O(n)是指在使用標誌情況下,否則仍是O(n)。冒泡排序://本人習慣先把最大的選出來,放到右邊void maopao(int arr[],int n){int i,j,tmp;//tmp提前寫上,或者及時補上!for

蘋果面試邏輯題

導讀:蘋果這樣的公司通常會在面試過程中向求職者拋出一些邏輯的問題來考研面試者,所以,如果你對進入蘋果感興趣,或者嚮往類似的公司,又或者只是對邏輯問題感興趣,這些面試難題值得你仔細研究。問題一:“你面前有兩扇門,其中一扇門內藏著寶藏,但如果你不小心闖入另一扇門,只能痛苦地慢慢死掉……”這一聽就是那種經典的最令人頭痛的一類問題,但其實與其他問題相比,這隻是個熱身。在這兩扇門後面,有兩個人,這兩個人都知道哪扇門後有寶藏,哪扇門擅闖者死,而這兩個人呢,一個人只說真話,一個人只說假話。誰說真話誰說假話?那

3NF和BCNF

R的依賴集閉包中,任一關係A->B,如果:1)依賴是平凡的;2)A是R的一個超碼;則是BCNF,滿足無損串連,但不一定依賴保持。 如果不滿足1)2),但滿足:3)B-A中每個屬性都在R的一個候選碼中;則是3NF,滿足無損串連,又滿足依賴保持。 基本概念:候選碼、超碼、依賴保持、無損串連分解。參見《資料庫系統概念》

Google的核心技術

  曾任職於IBM中國研究院,從事與雲端運算相關研究的CSDN部落格專家吳朱華曾寫過一篇文章《探索Google App Engine背後的奧秘1—Google的核心技術》,對Google的核心技術和其整體架構進行詳細的分析。  本篇將主要介紹Google的十個核心技術,而且可以分為四大類:  1.分布式基礎設施:GFS,Chubby和Protocol

非同步訊號安全(可重新進入性)與安全執行緒

  求職不利,趁十一假期複習APUE(第三版)線程和訊號章節,兩天時間看完。書中10.6和12.5兩節分別是訊號和線程的重入介紹。但是未對非同步訊號安全、安全執行緒、可重新進入概念做統一對比,難以徹悟。針對於此,寫下本文。可重新進入性  可重新進入性(reentrant)針對函數,它有兩個方面的內涵:  1、可並行/並發,同時進入:指可重新進入函數被某任務調用時,其它任務可同時進行調用而不產生錯誤的結果;或稱在相同的輸入情況下可重新進入函數的執行所產生的效果,並不因其並發的調用而產生不同,也稱並

總頁數: 61357 1 .... 4602 4603 4604 4605 4606 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.