Unix編程藝術:多道程式設計

多道程式設計:分離進程為獨立的功能Unix的最具特點的程式模組化技法就是將大型程式分解成多個協作進程。Unix提倡把程式分解成更簡單的子進程,並考慮介面:降低進程產生的開銷。提供方法簡化處理序間通訊。提倡使用能由管道和通訊端傳遞的簡單、透明的文本資料格式。真正的挑戰不是協議文法而是協議邏輯:協議設計既要有充分的表達能力,又能防範死結。從效能調整中分離複雜度控制在開發出可以把全域複雜度降至最低程度的乾淨體系之前,關注效能問題便是過早最佳化。線程提高了複雜度,應盡量少用線程。將程式劃分為多個協作進程

建立邏輯卷的過程

首先分區:# fdisk /dev/sdaThe number of cylinders for this disk is set to 60801.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2

diff和patch

首先介紹一下 diff 和 patch 。在這裡不會把 man 線上文檔上所有的選項都介紹一下,那樣也沒有必要。在 99%的時間裡,我們只會用到幾個選項。所以必須學會這幾個選項。1 、 diff--------------------NAME       diff - find differences between two filesSYNOPSIS       diff [options] from-file

[原]DRBD雙主模式問題

配置drbd:vim /etc/drbd.conf:include "/etc/drbd.d/global_common.conf";include "/etc/drbd.d/*.res";修改/etc/drbd.d/global_common.conf最大同步頻寬為20MB/s:    syncer {          rate 20M;    }建立資源設定檔:/etc/drbd.d/r0.res resource r0 {net {allow-two-primaries;}device

drbd雙主模式問題

DRBD雙主模式問題配置drbd:vim /etc/drbd.conf:include "/etc/drbd.d/global_common.conf";include "/etc/drbd.d/*.res";修改/etc/drbd.d/global_common.conf最大同步頻寬為20MB/s: syncer { rate 20M; }建立資源設定檔:/etc/drbd.d/r0.res resource r0 { net { allow-two-primaries; } device /

maven 之將項目打包壓縮。

用mavne打包的時候。預設只會打成jar包,但是他還需要依賴一些lib或者config。打包的時候都需要這些,最後打成zip,或者tar.gz 這樣的包發布。需要一個maven-assembly-plugin外掛程式pom.xml:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

maven 之 根據不同環境,選擇不同的設定檔。

沒用maven前,本地開發用的是一套配置,然後 測試環境和生產環境 又是另一個套,為了方便,以前還特地寫了shell去弄。自從用了maven後,這個問題就很好解決了pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.

fedora15 64bit 安裝 necessitasQT

necessitasQT是一位羅馬尼亞開發人員開發的android qt 開發包。使用necessitas可以把Qt程式部署到android手機上。由於這是在32位平台下編譯的,所以依賴一些32位的包,而這些包預設在64bit linux上是沒有的。我有幸把32bit的necessitas qt 裝在了我fedora15 64bit的電腦上,可以成功編譯並可以部署到手機上。一下是我做的一些配置1.安裝缺少的32位包,注意要加上.i686# yum install glibc.i686

[原]DRBD試用

DRBDDRBD是一種塊裝置,可以被用於高可用(HA)之中.它類似於一個網路RAID-1功能。當你將資料寫入本地檔案系統時,資料還將會被發送到網路中另一台主機上.以相同的形式記錄在一個檔案系統中。本地(主節點)與遠程主機(備節點)的資料可以保證即時同步.當本地系統出現故障時,遠程主機上還會保留有一份相同的資料,可以繼續使用。在高可用(HA)中使用DRBD功能,可以代替使用一個共用盤陣.因為資料同時存在於本地主機和遠程主機上,切換時,遠程主機只要使用它上面的那份備份資料,就可以繼續進行服務了。DR

std::map使用總結

  為了完成《web搜尋》課的作業,我奮鬥了兩天把層次匯合聚類HAC演算法和基於親和性訊息的聚類演算法給實現了。為了實現這兩個演算法,第一件事就是把文檔向量給計算出來。具體而言就是文本集中的索引詞構成了向量空間的一個維度。這樣有m個索引詞就構成了m維的特徵向量。在構建特徵向量的過程中需要頻繁使用std::map。因為我需要知道一個文檔中這個索引詞,出現的機率是多少。一下是我的一些經驗和大家分享一下:  1.operator []

netty ChannelPipeline流處理源碼詳細分析

netty 官網api,在介紹pipeline處理流的時候,給了一些例子和圖片介紹。以來證明 upstreamHandle和downstreamHandler流處理的順序。光看例子和結論,說實話很難理解,乾脆不如自己動手,debug。。下面是例子public class Server {public static void main(String args[]) {ServerBootstrap bootsrap = new ServerBootstrap(new

【推薦】The Function Pointer Tutorials

在網上看到一個介紹函數指標的網站,對函數指標介紹的很詳細,值得好好讀讀。http://www.newty.de/  網站也提供The Function Pointer Tutorials.pdf下載。這裡把目錄列出來:Contents1 Introduction to Function Pointers 21.1 What is a Function Pointer ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

使用intel vtune尋找熱點程式 最佳化代碼

  還是上次那個苦逼的web搜尋作業,本來做完了就算了吧。手賤的我有把程式塞給vtune跑了跑,發現了幾個熱點程式之後,我就不淡定了。好像總是有點淡淡的憂怨在心頭無法釋懷。於是就走上了最佳化這條不歸路。其實這條不歸路是很容易走完的。尤其是像我這樣的菜鳥,把所有最佳化的招的用完了,這條路就走到了盡頭。我就不曬我的文采了,直接講重點吧。  背景知識:我的主要工作是構建一個文檔向量。關於這個文檔向量的定義可看我的上一篇部落格。我用的最多的是統計一個單詞出現了多少詞,還有就是一個單詞出現在幾個文檔中。我

實現基於筆畫間隔均衡的手寫漢字非線性歸一化演算法

漢字歸一化通俗一點說就是把一個寫偏的漢字給正過來,給大家看看效果:左邊的漢字是我自己故意寫歪的,右邊是經過歸一化的。我的偏是指左右上下偏的,不包括旋轉。如果覺得上面左邊的字寫的挺正的,我再給大家看個歪的:主要的演算法是這個樣子的:對於每一個像素點P(i,j)  if P(i,j) == 白背景上的點    h(i,j) 為 在當前行內 從 當前點的前一個黑點 到 當前點下一個黑點 的距離    v(i,j) 為 在當前列內 從 當前點的前一個黑點 到 當前點下一個黑點 的距離  else    

分享一個蛋疼的俄羅斯方塊小遊戲

轉載請註明出處。http://www.cnblogs.com/dave_cn/ 我在Ubuntu 10.04下測試過,可以正常運行。不過介面讓人蛋疼。代碼用到了NCURSES庫。編譯的時候鏈一下ncurses庫就可以了,如:cc -Wall -O2 -o c01 file.c -lncurses介面:  /*************************************** * * TETRIS * * author: dave * date : 2010/07/28 * *****

Matlab external Interface : Mat-File generation program

  Matlab external Interface這玩意的中文不知道是什麼,感覺是Matlab外掛程式一類的東西。我用c++寫了一個函數可以產生一個巨大的矩陣。但是這個矩陣的svd分解我可不想再用c++寫了。於是我想把這個大矩陣匯入matlab的*.mat檔案中,讓matlab的svd命令來計算這個矩陣的svd分解。Matlab external Interface允許我寫一個可以產生matlab Mat檔案的c++程式。當然要包含matlab的標頭檔

gvim GTK-WARNING** Invaild Input string

轉自一下的部落格http://www.linguofeng.com/2010/10/ubuntu-gvim-gtk-warning-invalid-input-string.html,該方法在我的rhel6.0系統上也適用!啟動gvim時會出現 Gtk-WARNING **: Invalid input string 的錯誤,其實這個錯誤在之前的版本中也會出現,原因是 GVIM只能識別中文地區設定為zh_CN.UTF-8,而 Ubuntu預設安裝將會把中文地區設定為zh_CN.utf8。1cd

改寫了一個掃雷小遊戲

本博主比較喜歡掃雷,但是玩的很差。最近裝了個redhat,好不容易把centos的源給整好了,但是發現沒有掃雷這個經典的遊戲。($yum search saolei---no result $yum search mine ---no

log4cxx安裝錯誤

轉自一下部落格:http://techiech.blogspot.com/2010/11/apache-log4cxx-installing-error-on.htmlThe compilation went fine. But the installation failed with the following errormake[5]: Entering directory

總頁數: 61357 1 .... 5081 5082 5083 5084 5085 .... 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.