Xcode 4 - hiệu suất chậm


128

Tôi gặp sự cố với Xcode 4 thực sự phản hồi rất chậm đối với các tương tác của người dùng, ví dụ: chỉnh sửa mã, vùng cuộn, v.v. Điều này đặc biệt xảy ra với các dự án quy mô lớn hơn với nhiều bộ điều khiển / xem tệp, v.v.

Tôi đã xóa sạch hoàn toàn đĩa cứng và cài đặt lại Snow Leopard và Xcode vào tuần khác nhưng dần dần nó trở lại thời gian phản hồi bực bội (trong một số ngày) làm gián đoạn đáng kể quy trình làm việc.

Đôi khi tôi cũng đã xóa "dữ liệu dẫn xuất" của dự án thông qua Trình tổ chức -> Dự án và điều này ít có tác dụng.

Tôi tự hỏi liệu có bất cứ điều gì tôi có thể làm để cải thiện hiệu suất ngoài việc có được một máy tính đầu cơ cao hơn trong trường hợp đầu tiên.

FYI Tôi đang chạy MacBook với bộ xử lý Intel Core 2 Duo với tốc độ 2 GHz và 4GB RAM.

Trong trường hợp chúng tôi cần nâng cấp, tôi cũng muốn biết liệu mọi người có gặp phải hiệu năng kém này từ Xcode 4 trên các máy được đầu cơ tốt hay không (điều này sẽ khiến việc nâng cấp phần cứng của chúng tôi trở nên vô nghĩa vì chỉ có Xcode có vấn đề về hiệu năng trên MacBook).

Nếu bất kỳ ai có bất kỳ đề xuất hoặc đề xuất nào hoặc thậm chí có thể cho chúng tôi biết hiệu quả phần cứng của Xcode được cải thiện như thế nào trên các cây dự án lớn hơn thì điều đó sẽ vô cùng hữu ích và cũng là một tài nguyên quý giá cho các nhà phát triển khác ở vị trí tương tự.


Tôi đã thực hiện một bài viết khá dài cho Xcode 4.2 trong bài đăng này: stackoverflow.com/questions/7780663/
Kẻ

1
Tôi tìm thấy một giải pháp tốt hơn tất cả những giải pháp ở đây. Tôi chuyển sang AppCode. Vâng, đó là một $ 99, nhưng nó rẻ hơn so với việc mua một máy Mac mới. Tôi có MacBook Pro từ năm 2010. Nó có bộ xử lý nhanh hơn bất kỳ MacBook Air nào, nhưng ở đây, trong văn phòng, những người sử dụng chúng vẫn có thể có tốc độ tốt hơn. Tôi đã cài đặt lại Lion, sau đó cài đặt sạch cho Mountain Lion và vẫn không gặp may. Vì vậy, bây giờ tôi sử dụng AppCode và tôi lại vui vẻ.
HotFudgeSunday

1
Một sự giả dối đáng tiếc. AppCode thậm chí còn chậm hơn Xcode. Có vẻ như là một ứng dụng Java. Nó khuyến khích rất nhiều hoàn thành mã ưa thích, tự động #import và vv yêu cầu các quy trình nền. Nó có thể tốt hơn cho một số tình huống, nhưng không phải để tránh hiệu suất chậm của Xcode.
Cầu vồng Gabe

Câu trả lời:


161

Nếu bạn lọc tệp không gian làm việc, nó sẽ giúp tăng tốc.

Trước tiên, hãy đảm bảo Xcode không mở. Bây giờ tìm tập tin dự án của bạn. Nhấp chuột phải vào nó và chọn Show Package Contents.

nhập mô tả hình ảnh ở đây

Tiếp theo, xóa project.xcworkspace.

nhập mô tả hình ảnh ở đây

Mở Xcode và tận hưởng hiệu suất nhanh hơn!

Cảm ơn: http://meachware.blogspot.com/2011/06/speed-up-xcode-4.html


Chỉnh sửa: Tôi đã nhận được một số ý kiến ​​về lưu ý này rằng đối với một số dự án, điều này có thể gây ra sự cố. Hãy chắc chắn rằng bạn đã sao lưu dự án trước khi thực hiện các bước này và đừng quên kiểm tra và kiểm tra dự án của bạn sau đó . Hãy chắc chắn rằng bạn vẫn có tất cả các chương trình thực thi và kế hoạch của bạn.


Xóa không gian làm việc đã giúp giải quyết vấn đề, nhưng tôi không nghĩ rằng bạn thực sự cần phải có được cái
táo

3
Wow - Tôi đã xé tóc vì bóng liên tục trên bãi biển, và bây giờ nó chạy như một giấc mơ. Cảm ơn các mẹo hoàn toàn cần thiết. Điều đáng nói là nó tạm thời thiết lập lại bố cục cửa sổ của bạn (có thể rõ ràng hoặc không rõ ràng), nhưng đó là một cái giá nhỏ phải trả. Ngoài ra, nếu mọi người muốn xóa tệp không gian làm việc theo cách thủ công, họ có thể kiểm soát nhấp chuột vào tệp xcodeproj của họ, chọn 'hiển thị nội dung gói', sau đó xóa hoặc di chuyển tệp .xcworkspace.
Erik Asmussen

11
@sudo Incredible, nhưng bây giờ tôi đã mất lý do hiệu suất và không thể mua cho mình một MBP mới, nhanh hơn!?!
Daniel Blezek

Tôi đang có vấn đề hiệu suất tương tự. Một điều mà tôi thấy trong ngăn trạng thái nhỏ ở giữa trên cùng của cửa sổ là một thông báo có nội dung "Lập chỉ mục | xử lý 0 trên 1 tệp" (các số chỉ là ví dụ). Điều đó cũng có thể được thêm vào hiệu suất chậm?
milesmeow

3
Đây là lời khuyên BAD - thư mục xcworkspace chứa một số tệp cốt lõi cho dự án của bạn. Trong một dự án rất đơn giản, những tệp đó sẽ bị thiếu và nó sẽ ổn, do đó bạn có thể chưa nhận ra điều này. Trên các dự án phức tạp - ví dụ với Exectuables được chia sẻ, Lược đồ được chia sẻ, v.v. - bạn sẽ làm hỏng dự án của mình. cf câu hỏi .gitignore để biết chi tiết về các tệp WHICH trong xcworkspace có an toàn để xóa - và không phải vậy! stackoverflow.com/questions/49478/ cường
Adam

46

CẬP NHẬT QUAN TRỌNG: Đường dẫn thay đổi cho Xcode 6 (Cảm ơn đã nhận xét dcc)! Tôi chỉ thêm cách thay thế.


Có một mẹo hay khác để tăng tốc độ xây dựng bằng cách tạo đĩa ram với dòng mã sau:

diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://8475854`

Điều này tạo ra một hình ảnh đĩa trong bộ nhớ với kích thước khoảng 4 GB. Nhưng hãy cẩn thận, bạn cần có đủ bộ nhớ. Tất nhiên bạn có thể tạo một hình ảnh nhỏ hơn như 2 GB (đó sẽ là 4237927).

Sau đó, bạn nói với Xcode để lưu trữ dữ liệu dẫn xuất ở đó nhập mô tả hình ảnh ở đây

Bạn không thể yêu cầu Xcode lưu trữ dữ liệu Trình mô phỏng iPhone trực tiếp tại đó, nhưng bạn có thể tạo một thư mục trên ramdisk và tạo một liên kết tượng trưng thay vì thư mục Trình mô phỏng iPhone bằng cách thực hiện:

Xcode 6:

cd /Volumes/ramdisk
mkdir CoreSimulator
rm -R ~/Library/Developer/CoreSimulator
ln -s /Volumes/ramdisk/CoreSimulator ~/Library/Developer/CoreSimulator

Các phiên bản Xcode cũ hơn:

cd /Volumes/ramdisk
mkdir iPhone\ Simulator
rm -R ~/Library/Application\ Support/iPhone\ Simulator
ln -s /Volumes/ramdisk/iPhone\ Simulator ~/Library/Application\ Support/iPhone\ Simulator

Nếu tôi xây dựng trình giả lập với thiết lập này, nó sẽ hoạt động nhanh chóng :)

Xin lưu ý rằng đĩa ram sẽ biến mất khi bạn khởi động lại máy, vì vậy có thể nên tạo một tập lệnh hoặc một cái gì đó chạy khi khởi động. VÀ KHÔNG NƠI NÀO BẤT K D DỮ LIỆU NÀO BẠN MUỐN GIỮ !!!

CẬP NHẬT 2013/03/12:

  1. Đọc bình luận từ Francisco Garcia bên dưới!

  2. Với MBP mới của tôi (chứa ổ SSD), tôi không cần phương pháp này nữa. Xcode chạy như địa ngục :). Tôi hy vọng đây không được xem là quảng cáo cho mối quan tâm lớn về trái cây, nó chỉ là một báo cáo kinh nghiệm ...


2
người đàn ông .. điều này thực sự tuyệt vời. nhưng QUAN TRỌNG: điều này sẽ xóa coredata của bạn khỏi trình giả lập ... bạn sẽ mất mọi thử nghiệm mà bạn đã thực hiện cho đến nay. vì vậy, cảm ơn vì đã xây dựng nhanh hơn, nhưng cảnh báo sẽ rất tốt =)
Sebastian Flückiger

2
Đối với bất cứ ai làm điều này chỉ cần lưu ý rằng ĐÂY LÀ MỘT ĐIỀU BẠN MUỐN GIỮ trong thư mục dữ liệu dẫn xuất, tệp biểu tượng của bạn. Khi bạn triển khai một ứng dụng, bạn sẽ muốn giữ an toàn ở đâu đó tệp biểu tượng của nó trong trường hợp bạn muốn gỡ lỗi với báo cáo sự cố
SystematicFrank

1
@FranciscoGarcia Nếu bạn triển khai một ứng dụng thông qua trình tổ chức xcode bằng cách lưu trữ, các dSYM sẽ có trong kho lưu trữ. Điều này được lưu trữ bên ngoài thư mục dữ liệu dẫn xuất (ít nhất là trên phiên bản hiện tại của xcode - 4.6)
Danny Parker

1
@imcaptor Bạn có thể sử dụng Automator để tạo chương trình thực thi tập lệnh. Trong tùy chọn hệ thống của bạn, hãy chuyển đến Người dùng & Nhóm -> Mục Đăng nhập và thêm chương trình đó. Tôi cá là có một cách dễ dàng hơn, nhưng cách này hiệu quả
benjamin.ludwig

1
Đường dẫn ~ / Library / Application \ Support / iPhone \ Simulator dường như không còn chính xác nữa. Vui lòng cập nhật.
davidcondrey

9

Vô hiệu hóa các vấn đề trực tiếp trong Sở thích chung đã tạo ra sự khác biệt nhất định. Tôi cũng thiết lập một lược đồ không kích hoạt gdb cho các tình huống tôi thường xuyên chạy lại (không có gdb tăng tốc khởi chạy khá nhiều).


7

Đối với tôi, Xcode đã tăng hiệu suất rất lớn sau khi cài đặt nó chạy ở chế độ 32 bit (theo mặc định là 64). Nó gần như nhanh như Xcode cũ 3. Bạn có thể chuyển sang 32 bit bằng cách nhấp chuột phải vào ứng dụng (trong /Developer/Appluggest/XCode.app ) và chọn Nhận thông tin và kiểm tra Mở ở chế độ 32 bit .


Không tạo ra bất kỳ sự khác biệt nào đối với tôi trên MBP 2.2Ghz i7 vào ngày 10.6.8. Bạn có máy tính / HĐH nào?
vào

Tôi có máy Mac Mini với Intel Core 2 Duo 2.26 Ghz, bộ nhớ 10.6.8, 2GB.
gyozo kudor

7

Xcode 4.2, 4.3:

Các vấn đề lớn với trình chỉ mục tệp (cùng mã chạy Spotlight, đã bị lỗi trong nhiều năm? Có lẽ).

Vô hiệu hóa mọi thứ không cần thiết có liên quan đến các tệp "đang xem":

  1. Trợ giúp nhanh (NB: không bao giờ nhấp vào tab QH! Ngay cả việc ẩn Trợ lý vẫn khiến mã chạy! Chuyển sang một tab khác trước khi chuyển sang tệp mới ...)
  2. Quản lý SCM (SVN, Git, v.v. - Hỗ trợ git của Xcode vẫn còn một chút lỗi (có thể làm hỏng các dự án) và họ đã bỏ hỗ trợ SVN, vì vậy dù sao bạn cũng không nên sử dụng nó!)
  3. hãy thử xóa thư mục không gian làm việc của bạn (theo câu trả lời được chấp nhận), nhưng chỉ khi nó lớn trên đĩa
  4. ... bất cứ điều gì khác bạn có thể tìm thấy liên quan đến trạng thái của các tệp riêng lẻ

Xcode 4.4, 4.5:

Các phiên bản này có một rò rỉ mem lớn, một bộ chỉ mục tệp bị hỏng (nhưng tốt hơn 4.2 và 4.3) và có thể là một vấn đề trao đổi tập tin riêng tư.

Cuối cùng, bằng cách vô hiệu hóa / kích hoạt không gian hoán đổi ( cách vô hiệu hóa hoặc cho phép hoán đổi trong mac os x ) và sử dụng ổ cứng thông thường trên một số máy và bằng cách chạy thử nghiệm trên các máy có RAM 2 GB lên đến 16 GB RAM, tôi thấy rằng Xcode dường như chạy không gian hoán đổi của riêng nó, độc lập với trao đổi OS X (!).

(đây có thể là một lỗi - có thể có thêm một dạng hoán đổi OS X mà tôi không biết - nhưng các tệp hoán đổi hệ thống không trở nên lớn hơn hoặc nhỏ hơn, trong khi không gian đĩa tăng vọt bởi gigabyte trên một số máy)

Được Quan sát:

  1. Xcode 4.4 / 4.5 sẽ lấy ngẫu nhiên tất cả RAM trong hệ thống của bạn (10 GB cho một dự án nhỏ) để phần còn lại của hệ thống ngừng hoạt động, bị kẹt khi chờ đổi đĩa

    1. WORSE: trên macbook có SSD, bạn sẽ không biết điều này đã xảy ra
    2. CÔNG CỤ: ... mặc dù nó có thể làm hỏng ổ cứng của bạn (SSD không giống như ghi dữ liệu)
  2. Xcode sẽ hog truy cập vào đĩa cứng để nó có thể thực hiện lập chỉ mục tệp nội bộ (bị hỏng). Khi bộ nhớ hệ thống xuống thấp và OS X cần thực hiện hoán đổi ... nó bị kẹt khi chờ Xcode để lập chỉ mục các tệp ... và Xcode chiếm nhiều bộ nhớ hơn trong khi chờ ... và: BÙM! trên các hệ thống nhỏ hơn, OS X cuối cùng bị treo

  3. Xcode không cần không gian hoán đổi OS X

Điều cuối cùng là rất thú vị. Nếu bạn có nhiều bộ nhớ (ví dụ 16 GB), hãy thử tắt vĩnh viễn không gian trao đổi. Xcode chạy nhanh hơn, bởi vì OS X Lion có một số lỗi trong quản lý mem nơi nó hoán đổi ngay cả khi không cần thiết .

Nếu xcode bị chậm đột ngột, nó sẽ hoán đổi nội bộ, tại thời điểm đó bạn có thể giết và khởi động lại nó.

(nếu bạn có ổ SSD, cách duy nhất bạn có thể biết nếu nó bắt đầu hoán đổi là chờ nó "chậm hơn". Nếu không, bạn sẽ biết ngay khi bạn nghe thấy tiếng HD nguyên nhân chỉ có thể là Xcode)

Bạn có thể vô hiệu hóa trao đổi một cách an toàn ngay cả khi bạn có RAM 2GB (Tôi chỉ gặp một sự cố OS X mỗi tháng khi tôi thử điều này, chạy theo cách này trong một năm), nhưng nó sẽ ngăn bạn thực hiện công việc video / đồ họa cao cấp với các tệp chỉ cần nhiều gigabyte để chạy. Hãy thử nó trong vài tuần và xem điều gì sẽ xảy ra.

Nhưng ... khởi động lại Xcode bất cứ khi nào nó chậm lại làm việc kỳ diệu. Trên các máy có ít RAM, tệp hoán đổi riêng của Xcode dường như bị xóa NGAY LẬP TỨC khi bạn đóng (dường như không xảy ra trên các máy có nhiều RAM)


4

Không có phản hồi nào trong số này thực sự cải thiện hiệu suất trong trường hợp của tôi (theo thời gian Xcode 4.1 trở nên khó sử dụng, chỉ bỏ nó ngay bây giờ và sau đó giúp đỡ).

Tuy nhiên, tôi chỉ phát hiện ra rằng nếu tôi tiếp tục đóng tất cả các tài liệu của mình (control-lệnh-W) thì dường như vẫn còn nhanh. Xcode tự động giữ tất cả các tài liệu mà bạn nhấp vào bộ nhớ bằng cách nào đó và bạn có thể điều hướng giữa chúng bằng mũi tên điều khiển trái / phải. Nếu bạn vô tình mở quá nhiều (đặc biệt là các cửa sổ IB), nó sẽ bò đến mức dừng lại. Chỉ cần đóng tất cả các tài liệu mở bây giờ và sau đó dường như làm giảm bớt điều này mà không cần phải khởi động lại đầy đủ.



2

Mọi người đều gặp phải những vấn đề này nên thử Xcode 4.1 trên Mac OS X Lion. Tôi ngạc nhiên về mức độ nhanh và đáp ứng của nó trên cùng một phần cứng (Macbook Pro 2.66 GHz Core 2 Duo với 4GB RAM ở đây).

Tôi cho rằng họ đã sửa hàng tấn lỗi hiệu năng với bản phát hành này.


2
Vẫn chậm đối với tôi về thiết lập tương tự. (Xcode 4.1 và Mac OSX Lion trên MacBook 2.26 GHz Intel Core 2 Duo, RAM 2 GB)
Andrei

1

Bật các dụng cụ với mẫu hồ sơ thời gian và đính kèm nó vào Xcode đang chạy (hoặc clang, llvm, v.v. nếu vấn đề của bạn là trong quá trình xây dựng). Bạn sẽ có thể thấy vấn đề khá nhanh. Tôi đã thấy những nguyên nhân rất khác nhau trên các máy khác nhau. Kiểm soát phiên bản thường là thủ phạm.


1

Tôi đang đối mặt với những vấn đề tương tự. Chúng đã được sửa một phần vì các bản dựng beta vẫn còn tồn tại. Dường như Xcode bên trong có một hoặc nhiều rò rỉ đang làm trôi bộ nhớ của bạn. Bạn có thể xem "tính năng" tiện lợi này rất tốt khi sử dụng Trình tạo giao diện tích hợp. Hai giải pháp khả thi bên dưới cầu nguyện và điền báo cáo lỗi cho apple:

  1. Đừng sử dụng Builder bên trong, khởi chạy ứng dụng bên ngoài.
  2. Thỉnh thoảng thoát Xcode, điều này sẽ giải phóng bộ nhớ bị rò rỉ.

Tôi đã nhận được một bộ nhớ đồ họa iMac Mid 2011 hoàn toàn mới, 3,1 i5, 12gb Ram + 1gb, các vấn đề không làm phiền tôi nhiều ở đây, nhưng trước khi tôi mua nó, tôi đã phát triển trên MacBook, hãy tự mình làm việc máy, nó đáng đồng tiền, tin tôi đi :)
Tim Specht

0

Tôi đã thử mọi thứ được đề xuất trong chủ đề này và [nhiều] người khác và điều duy nhất làm việc cho tôi là "vô hiệu hóa" lật đổ cho dự án. Đây là phần nhảm nhí - cách DUY NHẤT tôi có thể "vô hiệu hóa" plugin SVN tích hợp là frig tập tin / etc / hosts của tôi với một địa chỉ IP không có thật, khiến cho tất cả các truy cập SVN không thành công.

Tôi đã thử xóa / đổi tên IDESubversion.ideplugin trong / Developer / Library / Xcode / PrivatePlugIns, nhưng Xcode 4.2.1 pukes và từ chối bắt đầu.

Tôi đã cố gắng xóa các kho lưu trữ SVN của mình khỏi Xcode mỗi lần tôi khởi động lại Xcode, nhưng Xcode gặp sự cố trong vài phút.

Tôi đã thử tắt "Trạng thái từ xa" qua Tệp-> Kiểm soát nguồn-> Ẩn trạng thái từ xa (không làm gì cho tôi).

Bây giờ tôi đã đặt tên máy chủ SVN của mình thành 1.2.3.4 trong tệp máy chủ của mình, Xcode hoạt động rất tốt và không hiển thị SBBOD gần như mỗi khi tôi chuyển đổi giữa các tệp.

$ grep 1.2.3.4 /etc/hosts
1.2.3.4 svn.myhost.com

Sau đó, khi tôi thực sự muốn thực hiện kiểm soát phiên bản, tôi phải hủy bỏ tập tin máy chủ và sử dụng cmd line svn.


Hãy thử đổi tên thư mục, /Appluggest/Xcode.app/Contents/PlugIns/IDESubversion.ideplugin, thành một cái gì đó có kết thúc khác. Tôi đã sử dụng một thủ thuật tương tự để vô hiệu hóa plugin Git.
John McFarlane

0

Bạn có thể tránh lập chỉ mục Xcode. Làm như vậy sẽ cải thiện hiệu năng bộ nhớ của hệ thống của bạn nhưng cũng sẽ ngăn các tính năng IDE như tự động hoàn thành và chuyển sang các định nghĩa hoạt động.

$ defaults write com.apple.dt.XCode IDEIndexDisable 1

0

Nếu bạn có hiệu suất chậm trong khi sửa đổi tệp .xib bằng trình tạo / chỉnh sửa giao diện, thì hãy vào Trình kiểm tra tệp cho .xib và tắt bố cục tự động . Thực hiện các chỉnh sửa của bạn thành .xib, sau đó là bước cuối cùng, bật lại bố cục tự động và thêm hoặc điều chỉnh các ràng buộc.


0

Cuối cùng tôi đã có Xcode của mình hoạt động bình thường bằng cách tắt tính năng git.



0

Trong trường hợp của tôi, đó là việc sử dụng RAM.

nhập mô tả hình ảnh ở đây

Cố gắng giết một vài tab Chrome hoặc các ứng dụng hiếm khi được sử dụng.


0

Tôi đã tìm thấy một mẹo để tăng tốc hiệu suất biên dịch của XCode 4: Khi bạn chạy hoặc biên dịch hoặc thực hiện bất kỳ xử lý nào khác trong Xcode và nó sẽ mở màn hình hoạt động mở, chọn quy trình Xcode sau đó nhấp vào quy trình mẫu. Nó sẽ làm cho quá trình không hoạt động và chạy lại như bình thường cho phép xây dựng ứng dụng trong thời gian hợp lý.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.