공개적으로 사용할 수있는 Objective-C 코드를 작성 중입니다. 이 코드는 주로 잘 알려진 알고리즘으로 구성되어 최적화의 이점을 얻습니다. 나는 C로 객체와 가비지 컬렉션 생성에 대한 오버 헤드를 줄이기 위해 대부분의 코드를 작성할 계획이다. 이것은 나쁜 관행으로 간주됩니까?objective-c/cocoa 프레임 워크에서 c 코드를 작성하는 것은 나쁜 습관이라고 생각하십니까?
답변
아니요. 이것은 실제로 실제로 빈번히 이루어집니다.
일반적으로 시간이 중요한 코드가 더 빨리 실행되어야 할 때 (다른 모든 것은 동일하고 C 함수를 호출하는 것이 Objective-C 방법보다 빠름)이 작업을 수행합니다.
그러나 C 함수를 대신 작성하는 것이 더 좋을 수도 있습니다.
Objective-C는 C의 상위 집합이므로 Objective-C는 할 수있는 모든 작업을 수행 할 수 있으며 C가 수행 할 수있는 작업을 수행하는 것은 나쁜 것으로 간주해서는 안됩니다. 어쨌든 어떤 일을하는 것이 바람직하지 않을 수도 있습니다.
조기 최적화는 좋은 연습이인지 응용 프로그램에 전적으로 달려있다 모든 악의
의 루트입니다. 대부분의 경우 Objective-C에 먼저 작성한 다음 너무 느린 경우 최적화를 위해 프로파일 러를 사용합니다.
그러나 언어 해석기 또는 CPU 에뮬레이션을 작성하는 경우와 같이 최적화가 필요한 경우가 있습니다. 이러한 경우 (그리고 프로파일 링이 병목 현상을 나타내는 경우) 순수한 C를 쓰는 것이 완벽합니다.
아니요. Apple의 고유 한 프레임 워크는 대부분 Core Graphics 또는 Accelerate와 같은 C입니다. C는 많이 사용하고 수학 함수처럼 빠르게 실행해야하는 함수에 매우 유용합니다.
OO 모델, 특히 단일 발송 인 경우에는 의미가없는 경우가 있습니다. 일반적인 기능을 위해 명확한 선호받는 "수신자"가 없을 수 있습니다. 다중 디스패치 제네릭 함수를 지원하는 언어는 내가 좋아할 것입니다. 그러한 언어는 대부분의 사람들이 OO로 생각하는 것뿐만 아니라 그저 훨씬 오래된 언어의 C 스타일 함수 만 지원합니다.
- 1. TThread.Execute 안에 무한 루프를 두는 것은 나쁜 습관이라고 생각합니까?
- 2. Zend 프레임 워크에서 쿼리를 작성하는 방법은 무엇입니까?
- 3. JavaScript 프레임 워크가 가장 나쁜 것은 무엇입니까?
- 4. GNUStep을 사용하여 Windows 응용 프로그램을 작성하는 것은 나쁜 습관으로 간주됩니까?
- 5. 다음 코드를 실행하려고, 엔티티 프레임 워크에서
- 6. 클래스/아이디를 문자열로 잡아서 별개의 요소를 선택하는 것은 나쁜 습관이라고 생각합니까?
- 7. 왜 이것이 나쁜 습관이라고 생각합니까? 그렇지 않습니까? (ASP.Net)
- 8. 사용자가 Mono 프레임 워크를 설치하도록 요구하는 것은 나쁜 습관입니까?
- 9. 다른 프레임 워크에서 할 수있는 레일즈에서 할 수없는 것은 무엇입니까?
- 10. mod_perl2에서 fork하는 것은 나쁜 생각입니까?
- 11. $ _POST에 쓰는 것은 나쁜 습관입니까?
- 12. 방법 젠드 프레임 워크에서 여러 삽입 쿼리를 작성하는
- 13. ORM없이 ASP.NET MVC를 수행하는 것은 나쁜 생각입니까?
- 14. 나쁜 습관 : 인터페이스에서 이벤트 노출?
- 15. 젠드 프레임 워크에서 라우팅
- 16. 프레임 워크에서 파일 검사
- 17. 웹 프레임 워크에서 권한 부여
- 18. classmethod를 인스턴스의 메서드로 호출하는 것은 나쁜 형식입니까?
- 19. 정적 필드를 사용하는 것은 나쁜 습관입니까?
- 20. STL 컨테이너에만 C++을 사용하는 것은 나쁜 습관입니까?
- 21. 재생 프레임 워크에서 Json 사용
- 22. 엔티티 프레임 워크에서 NHibernate 'Bags'구현
- 23. JavaScript 프레임 워크에서 위젯 캡슐화
- 24. void 메소드 내에서 return을 사용하는 것은 나쁜 습관입니까?
- 25. homebrew 설치된 프레임 워크에서 macdeployqt
- 26. 데이터 멤버에 직접 액세스하는 것은 나쁜 습관입니까?
- 27. C# 확장 메서드에서 이벤트를 구독하는 것은 나쁜 습관입니까?
- 28. .net 프레임 워크에서 vst sdk를 사용하는 방법
- 29. 나쁜 의사 코드를 Java로 변환
- 30. 이 PHP 코드를 C++로 작성하는 법