Re: [麥書] 用mac寫程式的好處
→ 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
這些經驗跟大家分享一下參考一下
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.252.25
※ 編輯: Killercat 來自: 123.192.252.25 (04/07 07:39)
推
04/07 08:27, , 1F
04/07 08:27, 1F
推
04/07 08:52, , 2F
04/07 08:52, 2F
推
04/07 08:53, , 3F
04/07 08:53, 3F
推
04/07 09:52, , 4F
04/07 09:52, 4F
→
04/07 09:54, , 5F
04/07 09:54, 5F
→
04/07 09:54, , 6F
04/07 09:54, 6F
→
04/07 09:54, , 7F
04/07 09:54, 7F
→
04/07 09:55, , 8F
04/07 09:55, 8F
→
04/07 09:55, , 9F
04/07 09:55, 9F
→
04/07 09:55, , 10F
04/07 09:55, 10F
→
04/07 09:56, , 11F
04/07 09:56, 11F
→
04/07 09:57, , 12F
04/07 09:57, 12F
→
04/07 09:57, , 13F
04/07 09:57, 13F
→
04/07 09:58, , 14F
04/07 09:58, 14F
→
04/07 09:59, , 15F
04/07 09:59, 15F
推
04/07 10:11, , 16F
04/07 10:11, 16F
→
04/07 10:11, , 17F
04/07 10:11, 17F
→
04/07 10:37, , 18F
04/07 10:37, 18F
推
04/07 10:37, , 19F
04/07 10:37, 19F
→
04/07 10:40, , 20F
04/07 10:40, 20F
→
04/07 11:00, , 21F
04/07 11:00, 21F
→
04/07 11:00, , 22F
04/07 11:00, 22F
→
04/07 11:01, , 23F
04/07 11:01, 23F
→
04/07 11:01, , 24F
04/07 11:01, 24F
→
04/07 11:01, , 25F
04/07 11:01, 25F
→
04/07 11:01, , 26F
04/07 11:01, 26F
→
04/07 11:02, , 27F
04/07 11:02, 27F
→
04/07 11:02, , 28F
04/07 11:02, 28F
→
04/07 11:02, , 29F
04/07 11:02, 29F
→
04/07 11:02, , 30F
04/07 11:02, 30F
→
04/07 11:03, , 31F
04/07 11:03, 31F
→
04/07 11:03, , 32F
04/07 11:03, 32F
→
04/07 11:03, , 33F
04/07 11:03, 33F
→
04/07 11:04, , 34F
04/07 11:04, 34F
→
04/07 11:04, , 35F
04/07 11:04, 35F
→
04/07 11:04, , 36F
04/07 11:04, 36F
→
04/07 11:05, , 37F
04/07 11:05, 37F
→
04/07 11:06, , 38F
04/07 11:06, 38F
→
04/07 11:06, , 39F
04/07 11:06, 39F
→
04/07 11:07, , 40F
04/07 11:07, 40F
→
04/07 11:07, , 41F
04/07 11:07, 41F
→
04/07 11:07, , 42F
04/07 11:07, 42F
→
04/07 11:08, , 43F
04/07 11:08, 43F
→
04/07 11:09, , 44F
04/07 11:09, 44F
→
04/07 11:09, , 45F
04/07 11:09, 45F
→
04/07 11:09, , 46F
04/07 11:09, 46F
→
04/07 11:09, , 47F
04/07 11:09, 47F
→
04/07 11:10, , 48F
04/07 11:10, 48F
→
04/07 11:10, , 49F
04/07 11:10, 49F
→
04/07 11:11, , 50F
04/07 11:11, 50F
→
04/07 11:11, , 51F
04/07 11:11, 51F
→
04/07 11:12, , 52F
04/07 11:12, 52F
→
04/07 11:12, , 53F
04/07 11:12, 53F
→
04/07 11:12, , 54F
04/07 11:12, 54F
→
04/07 11:13, , 55F
04/07 11:13, 55F
→
04/07 11:13, , 56F
04/07 11:13, 56F
→
04/07 11:13, , 57F
04/07 11:13, 57F
→
04/07 11:13, , 58F
04/07 11:13, 58F
→
04/07 11:14, , 59F
04/07 11:14, 59F
→
04/07 11:14, , 60F
04/07 11:14, 60F
→
04/07 11:14, , 61F
04/07 11:14, 61F
→
04/07 11:14, , 62F
04/07 11:14, 62F
→
04/07 11:15, , 63F
04/07 11:15, 63F
→
04/07 11:16, , 64F
04/07 11:16, 64F
→
04/07 11:17, , 65F
04/07 11:17, 65F
推
04/07 12:44, , 66F
04/07 12:44, 66F
→
04/07 14:19, , 67F
04/07 14:19, 67F
討論串 (同標題文章)