用mac寫程式的好處 - MAC

By Dinah
at 2012-04-07T07:37
at 2012-04-07T07:37
Table of Contents
→ Killercat:ram吃得凶跟OS底層API策略比較有關係,很難說好還是不好 04/07 06:57
→ Killercat:OSX本來就是傾向於"盡可能放記憶體給程式吃" 04/07 06:57
→ Killercat:你記憶體充足那就會無敵順(這應該就是前面同配備osx會比 04/07 06:58
→ Killercat:win7表現好的重要原因之一) 不過記憶體不夠就很麻煩 04/07 06:58
→ Killercat:尤其osx的swap其實並沒有win的pagefile效率那麼好 :Q 04/07 06:59
→ Killercat:不過我選mac當開發用機有幾個很重要的原因分享一下好了 04/07 07:00
→ Killercat:1. android device幾乎不用灌driver就能正確驅動 04/07 07:00
→ Killercat:2. 相對好用許多許多的unix based terminal 04/07 07:00
→ Killercat:3. 最重要的,這trackpad真是讚阿 XDDDDD 04/07 07:00
→ Killercat:4. xcode 5. 強迫自己用POSIX標準寫東西 04/07 07:01
→ Killercat:不然老實講我是.net c#派的 這個語言真的太棒了 XD 04/07 07:02
→ Killercat:算了回一篇好了 XD 04/07 07:08
來分享一下我自己為什麼選擇mac當開發機好了,
順便聊一下普通人對osx記憶體策略的誤解
OSX從10.3以來(我沒記錯的話)記憶體策略一直都是盡可能的最大化使用
他們的想法是"Unused memory is useless memory"
這策略理論上是正確的,至少在大部分的情況下
OSX記憶體策略來講,讓我們打開Activity Manager看一下
他記憶體一共分成四大區塊 : Free, Actived, Inactived, Wired
其中我們"真正"吃到的是Wired跟Actived,差別在於Wired不會被Paged or swapped
(也就是不會被寫入硬碟:在WIN的說法叫做虛擬記憶體或者PageFile)
而inactived則是最近quit的一些application占用的記憶體,雖然跟free有點差
但是在大多數的情況你可以當作他等同free
所以其實OSX吃的記憶體恐怕沒有大多數人想的那麼多 XD
但是事實上一個程式吃的wired+actived來講,osx的確是比win7來的多
(尤其VM系列 更是多上不少)
前面提過他的策略是盡可能多吃記憶體換取比較順暢的使用者體驗
這種策略不能說好或者不好,但是優點很明顯,缺點卻一樣明顯
在記憶體充足的場合中這樣是很讚的,但是記憶體不夠的場合就會出現問題
OSX也是吃swap(他的swap檔案在/private/var/vm/ 有興趣的人自己去翻一下)
但是他的swap事實上校能比linux的swap FS差一點
(linux swap吃自家的FS所以... 另外我不知道他跟mkswap搞出的swap效能高低)
而且也比windows的pagefile來的差
加上這種記憶體策略下,很容易就會讓部分常常執行到的東西掉進swap
然後他的swap不良造成速度低下 -- 更慘的是有時候wired不夠就會開始靈異現象
(osx的記憶體吃光光靈異現象在開發上不算少見,lion以後好一點)
win7很少有記憶體不夠造成當機或者靈異現象
我家的電腦以前4g, 有一條記憶體偷偷壞掉了所以變成2g我卻不知道
但是雙開VS+TES5只是覺得ㄟ奇怪怎麼電腦便那麼慢 硬碟怎麼老是狂轉
但是就是不會當機或者靈異現象 XD 後來才注意到阿娘威怎麼記憶體剩下2g...
osx其實比win7還需要重開機阿(經驗談)...
只是次數都不多就是了
ok上面聊到了OSX的記憶體策略,有優點也有缺點。下面分享一下為什麼我喜歡用osx開發
1. android device幾乎不用灌driver就能正確驅動
我自己是開發android為主的,他對於每支手機或者device幾乎都是插上就能用
linux的話要自己寫usb定義檔(煩) windows的話要灌每家不同廠商的USB Driver
當然,google是有提供一個公版的win usb driver 但是那個不是每隻手機都能用 :Q
2. 相對好用許多許多的unix based terminal
這個不用多說,這幾乎就是我選擇linux/osx而非windows的最大理由
但是osx又有一點比linux好的地方,在terminal裡面,事實上ctrl-v / ctrl-c
這兩個是有特殊意義的,所以linux的terminal剪下貼上非常麻煩
但是osx用cmd-c/cmd-v取代了ctrl,讓terminal方便度增加相當多
3. Trackpad
這可能不是很多人選擇的理由,但是對我這個喜歡拎個電腦到處跑的人來說
有一個能讓我完全不會想外接滑鼠的好cursor操作介面是一個非常亮眼的亮點
即使是我現在我都仍然是買Magic Trackpad外接我的mac 而非mouse
4. xcode
這個不用說,開發iOS非這個不可。不過老實講我自己是很討厭objc的 XD
只是剛好工作也需要開發一些lib for iOS
5. 強迫自己跟別人POSIX標準
這個應該很多人有這種經驗,接手一組code想要重複利用結果發現編譯錯誤一堆
仔細一看裡面居然充斥了一堆win32 api像是CreateThread(...) CSocket...
為什麼不乖乖用POSIX標準的__beginThreadEx跟SOCKET呢(怒吼)
6. (這是設計比較碰的到的問題) OSX的色彩比較正確
這篇前面剛好有人推文提過,請在本版搜尋"螢幕"
老話一句,我個人是C#派,非常喜愛.net。但是即使如此,我還是選擇mac當開發機
雖然在osx不能跑visual studio,不過大不了VM或者用TeamViewer/VNC連線回家寫阿
反正工作來講大多數都還是碰objc跟java比較多 XD
這些經驗跟大家分享一下參考一下
--
Tags:
MAC
All Comments

By Thomas
at 2012-04-08T22:07
at 2012-04-08T22:07

By Odelette
at 2012-04-10T04:32
at 2012-04-10T04:32

By Kelly
at 2012-04-13T03:51
at 2012-04-13T03:51

By Regina
at 2012-04-17T01:22
at 2012-04-17T01:22

By John
at 2012-04-21T18:10
at 2012-04-21T18:10

By Poppy
at 2012-04-25T16:35
at 2012-04-25T16:35

By Annie
at 2012-04-28T20:59
at 2012-04-28T20:59

By Wallis
at 2012-05-01T02:19
at 2012-05-01T02:19

By Tom
at 2012-05-05T09:39
at 2012-05-05T09:39

By Damian
at 2012-05-10T07:59
at 2012-05-10T07:59

By Dinah
at 2012-05-14T00:24
at 2012-05-14T00:24

By Lydia
at 2012-05-18T16:44
at 2012-05-18T16:44

By Harry
at 2012-05-23T04:32
at 2012-05-23T04:32

By John
at 2012-05-27T09:06
at 2012-05-27T09:06

By Cara
at 2012-05-29T00:00
at 2012-05-29T00:00

By Hazel
at 2012-06-01T21:33
at 2012-06-01T21:33

By Doris
at 2012-06-04T06:50
at 2012-06-04T06:50

By Susan
at 2012-06-08T19:02
at 2012-06-08T19:02

By Lily
at 2012-06-13T10:32
at 2012-06-13T10:32

By Olive
at 2012-06-18T07:16
at 2012-06-18T07:16

By Lily
at 2012-06-22T06:28
at 2012-06-22T06:28

By Andrew
at 2012-06-25T02:57
at 2012-06-25T02:57

By Jack
at 2012-06-29T05:48
at 2012-06-29T05:48

By Jake
at 2012-07-01T03:15
at 2012-07-01T03:15

By Agatha
at 2012-07-01T15:29
at 2012-07-01T15:29

By Sierra Rose
at 2012-07-03T16:06
at 2012-07-03T16:06

By Iris
at 2012-07-06T14:38
at 2012-07-06T14:38

By Lauren
at 2012-07-08T01:52
at 2012-07-08T01:52

By Joe
at 2012-07-12T07:57
at 2012-07-12T07:57

By Blanche
at 2012-07-15T11:16
at 2012-07-15T11:16

By Adele
at 2012-07-17T13:30
at 2012-07-17T13:30

By Zanna
at 2012-07-22T01:55
at 2012-07-22T01:55

By Dora
at 2012-07-22T14:14
at 2012-07-22T14:14

By Xanthe
at 2012-07-26T02:31
at 2012-07-26T02:31

By Barb Cronin
at 2012-07-27T12:11
at 2012-07-27T12:11

By Kumar
at 2012-07-30T23:05
at 2012-07-30T23:05

By Skylar DavisLinda
at 2012-07-31T15:05
at 2012-07-31T15:05

By Sarah
at 2012-08-04T11:58
at 2012-08-04T11:58

By Kyle
at 2012-08-06T13:44
at 2012-08-06T13:44

By Lydia
at 2012-08-07T18:58
at 2012-08-07T18:58

By Ida
at 2012-08-09T10:25
at 2012-08-09T10:25

By Adele
at 2012-08-12T19:07
at 2012-08-12T19:07

By Odelette
at 2012-08-15T05:15
at 2012-08-15T05:15

By Necoo
at 2012-08-18T16:11
at 2012-08-18T16:11

By Noah
at 2012-08-20T15:35
at 2012-08-20T15:35

By Hedy
at 2012-08-22T03:00
at 2012-08-22T03:00
Related Posts
Video Converter 限時免費

By Anonymous
at 2012-04-06T23:33
at 2012-04-06T23:33
用mac寫程式的好處

By Yuri
at 2012-04-06T22:04
at 2012-04-06T22:04
請問螢幕保護程式(不要效果)

By Robert
at 2012-04-06T21:36
at 2012-04-06T21:36
10.7標點符號問題

By Mia
at 2012-04-06T18:10
at 2012-04-06T18:10
yahoo輸入法與office2011 for mac 問題

By Irma
at 2012-04-06T14:22
at 2012-04-06T14:22