Về bản chất, sự trừu tượng hóa của nó làm giảm sự phân chia thông tin, cho cả lập trình viên và các lớp thấp hơn của hệ thống (trình biên dịch, thư viện và hệ thống thời gian chạy). Có lợi cho sự trừu tượng, điều này thường cho phép các lớp thấp hơn cho rằng lập trình viên không quan tâm đến bất kỳ hành vi không xác định nào, cung cấp sự linh hoạt hơn trong việc cung cấp hành vi được chỉ định.
Một ví dụ về lợi ích tiềm năng từ khía cạnh "không quan tâm" này là trong cách bố trí dữ liệu. Trong C (độ trừu tượng thấp), trình biên dịch bị hạn chế hơn trong tối ưu hóa bố cục dữ liệu. Ngay cả khi trình biên dịch có thể nhận ra (ví dụ, thông qua thông tin hồ sơ) rằng tối ưu hóa tránh nóng / lạnh hoặc chia sẻ sai sẽ có lợi, thì thường không được áp dụng như vậy. (Có một số tự do trong việc chỉ định "như thể", nghĩa là xử lý đặc tả một cách trừu tượng hơn, nhưng việc tạo ra tất cả các tác dụng phụ tiềm ẩn sẽ tạo thêm gánh nặng cho trình biên dịch.)
Một đặc điểm kỹ thuật trừu tượng hơn cũng mạnh mẽ hơn đối với những thay đổi trong sự đánh đổi và sử dụng. Các lớp thấp hơn ít bị ràng buộc hơn trong việc mở lại chương trình cho các đặc điểm hệ thống mới hoặc sử dụng mới. Một đặc tả cụ thể hơn phải được viết lại bởi một lập trình viên hoặc nỗ lực bổ sung phải được thực hiện bởi các lớp thấp hơn để đảm bảo hành vi "như thể".
Khía cạnh cản trở hiệu suất của việc trừu tượng hóa thông tin là "không thể diễn tả", mà các lớp thấp hơn thường sẽ xử lý là "không biết". Điều này có nghĩa là các lớp thấp hơn phải phân biệt thông tin hữu ích để tối ưu hóa từ các phương tiện khác như sử dụng chung điển hình, sử dụng mục tiêu hoặc thông tin hồ sơ cụ thể.
Tác động của việc che giấu thông tin cũng theo hướng khác. Lập trình viên có thể làm việc hiệu quả hơn bằng cách không phải xem xét và chỉ định từng chi tiết, nhưng lập trình viên có thể có ít thông tin hơn về tác động của các lựa chọn thiết kế cấp cao hơn.
Mặt khác, khi mã cụ thể hơn (ít trừu tượng hơn), các lớp thấp hơn của hệ thống có thể đơn giản hơn làm những gì chúng được bảo làm như chúng được bảo làm. Nếu mã được viết tốt cho mục đích sử dụng của nó, nó sẽ phù hợp với mục đích sử dụng của nó. Một ngôn ngữ ít trừu tượng (hoặc mô hình lập trình) cho phép lập trình viên tối ưu hóa việc thực hiện bằng thiết kế chi tiết và bằng cách sử dụng thông tin không dễ dàng truyền đạt bằng ngôn ngữ nhất định cho các lớp thấp hơn.
Như đã lưu ý, các ngôn ngữ trừu tượng (hoặc kỹ thuật lập trình) ít hấp dẫn hơn khi kỹ năng và nỗ lực lập trình bổ sung có thể tạo ra kết quả đáng giá. Khi nhiều nỗ lực và kỹ năng lập trình viên được áp dụng, kết quả thường sẽ tốt hơn. Ngoài ra, một hệ thống ngôn ngữ được sử dụng ít hơn cho các ứng dụng quan trọng về hiệu năng (thay vào đó nhấn mạnh nỗ lực phát triển hoặc độ tin cậy - kiểm tra giới hạn và thu gom rác không chỉ là về năng suất của lập trình viên mà còn về tính chính xác, trừu tượng giảm tải tinh thần cho lập trình viên có thể cải thiện độ tin cậy) sẽ có ít áp lực hơn để cải thiện hiệu suất.
Tính đặc hiệu cũng hoạt động theo nguyên tắc không lặp lại chính bạn vì tối ưu hóa thường có thể bằng cách điều chỉnh mã theo một mục đích sử dụng cụ thể. Điều này có độ tin cậy rõ ràng và ý nghĩa nỗ lực lập trình.
Các tóm tắt được cung cấp bởi một ngôn ngữ cũng có thể bao gồm các công việc không mong muốn hoặc không cần thiết mà không có cách nào để chọn một trừu tượng ít nặng hơn. Mặc dù các công việc không cần thiết đôi khi có thể được phát hiện và loại bỏ bởi các lớp thấp hơn (ví dụ: kiểm tra giới hạn có thể được trích xuất từ phần thân của vòng lặp và loại bỏ hoàn toàn trong một số trường hợp), xác định rằng đó là một tối ưu hóa hợp lệ đòi hỏi nhiều "kỹ năng và nỗ lực" hơn trình biên dịch.
Tuổi ngôn ngữ và mức độ phổ biến cũng là những yếu tố đáng chú ý cả về sự sẵn có của các lập trình viên lành nghề và chất lượng của các lớp thấp hơn của hệ thống (bao gồm các thư viện trưởng thành và các ví dụ mã).
Một yếu tố kết hợp khác trong các so sánh như vậy là sự khác biệt có phần trực giao giữa biên dịch trước thời hạn và biên dịch chỉ trong thời gian. Mặc dù việc biên dịch đúng lúc có thể dễ dàng khai thác thông tin hồ sơ hơn (không dựa vào lập trình viên để cung cấp các hoạt động hồ sơ) và tối ưu hóa cụ thể theo hệ thống (biên dịch trước có thể nhắm mục tiêu tương thích rộng hơn), chi phí tối ưu hóa tích cực được tính là một phần của hiệu suất thời gian chạy. Kết quả JIT có thể được lưu trong bộ nhớ cache, giảm chi phí cho mã thường được sử dụng. (Việc thay thế tái cấu trúc nhị phân có thể cung cấp một số lợi thế của quá trình biên dịch JIT, nhưng các định dạng phân phối nhị phân truyền thống làm giảm hầu hết thông tin mã nguồn có khả năng buộc hệ thống cố gắng phân biệt ý định từ việc triển khai cụ thể.)
(Các ngôn ngữ trừu tượng thấp hơn, vì chúng nhấn mạnh vào kiểm soát lập trình viên, ưu tiên sử dụng biên dịch trước thời gian. Biên dịch thời gian cài đặt có thể được chấp nhận, mặc dù lựa chọn triển khai thời gian liên kết sẽ cung cấp kiểm soát lập trình lớn hơn. )
Ngoài ra còn có vấn đề về phương pháp điểm chuẩn. Nỗ lực / kỹ năng tương đương thực sự không thể thiết lập được, nhưng thậm chí nó có thể đạt được mục tiêu ngôn ngữ sẽ làm sai lệch kết quả. Nếu cần thời gian lập trình tối đa thấp, một chương trình dành cho ngôn ngữ ít trừu tượng hơn thậm chí có thể không được viết hoàn toàn so với biểu thức thành ngữ đơn giản trong ngôn ngữ trừu tượng hơn. Nếu thời gian / nỗ lực lập trình tối đa cao được cho phép, các ngôn ngữ trừu tượng thấp hơn sẽ có lợi thế. Điểm chuẩn trình bày kết quả nỗ lực tốt nhất đương nhiên sẽ được thiên vị trong các ngôn ngữ ít trừu tượng hơn.
Đôi khi có thể lập trình theo cách ít thành ngữ hơn trong ngôn ngữ để đạt được lợi thế của các mô hình lập trình khác, nhưng ngay cả khi khả năng biểu cảm có sẵn, sự đánh đổi để làm như vậy có thể không thuận lợi.