Khai báo tên biến, bao nhiêu (nếu có) tác động nào chiều dài của tên của nó có đến tổng bộ nhớ của ứng dụng? Có chiều dài tối đa không? Hay chúng ta tự do xây dựng trên các biến của chúng ta (và các thể hiện) nhiều như chúng ta muốn?Cách bạn đặt tên biến có ảnh hưởng đến việc sử dụng bộ nhớ của một ứng dụng không?
Trả lời
Điều đó tùy thuộc vào ngôn ngữ.
Nếu bạn đang sử dụng C++ hoặc C, nó không có tác động.
Nếu bạn đang sử dụng ngôn ngữ thông dịch, bạn sẽ chuyển mã nguồn xung quanh, để nó có thể có tác động đáng kể.
Nếu bạn đang sử dụng ngôn ngữ được biên dịch để biên dịch sang ngôn ngữ trung gian, chẳng hạn như Java hoặc bất kỳ ngôn ngữ .NET nào, thì thường là tên biến, tên lớp, tên phương thức, v.v ... đều là một phần của IL. Có tên phương thức dài hơn sẽ có tác động. Tuy nhiên, nếu sau đó bạn chạy qua một obfuscator, điều này biến mất, kể từ khi obfuscator sẽ đổi tên tất cả mọi thứ (thường) tên rất ngắn. Đây là lý do tại sao obfuscation thường mang lại hiệu quả hoạt động.
Tuy nhiên, tôi thực sự khuyên bạn nên sử dụng tên biến/tên/lớp mô tả dài, mô tả. Điều này làm cho mã của bạn dễ hiểu, dễ bảo trì và có thể đọc được - về lâu dài, vượt xa bất kỳ sự hoàn hảo nhẹ nào. lợi ích.
+1 để xem xét IL –
IL là cách quá quan trọng để bỏ qua. Java, C#, VB.Net là những cái bạn nghĩ đến, nhưng ngay cả python cũng không được hiểu, nó có dạng riêng của nó là IL ... –
Tên có thể là một phần của IL, nhưng trong .NET ít nhất, IL được JIT'ed vào ngôn ngữ máy, do đó, một lần nữa, không có tên biến. –
Nó không có tác động trong ngôn ngữ được biên dịch.
Trong các ngôn ngữ được biên dịch, hầu như không chắc chắn; mọi thứ trở thành biểu tượng trong bảng biểu tượng. Trong các ngôn ngữ thông dịch, câu trả lời cũng không, với một vài ngoại lệ cực kỳ hiếm (trong một số phiên bản cũ hơn của Python sẽ có sự khác biệt, ví dụ).
MSVC++ cắt bớt tên biến thành 255 ký tự. Độ dài tên biến không ảnh hưởng đến kích thước mã được biên dịch.
Như đã nêu khác, tên biến sẽ biến mất trong các ngôn ngữ được biên dịch. Tôi tin rằng tên biến cục bộ trong .Net có thể bị loại bỏ. Nhưng nói chung, ngay cả trong một ngôn ngữ diễn giải, tiêu thụ bộ nhớ của tên biến là không đáng kể, đặc biệt là trong ánh sáng của những lợi thế của tên biến tốt.
Trên thực tế trong các tên biến dài của ASP.NET cho các điều khiển và trang chính, hãy thêm vào kích thước của HTML được tạo. Điều này sẽ thêm một số bộ nhớ bổ sung không đáng kể để đệm luồng đầu ra, nhưng hiệu ứng sẽ được chú ý nhiều nhất trong vài trăm byte bổ sung mà bạn gửi qua mạng.
Trong Python, các tên dường như được thu thập vào một số bảng đơn giản; mỗi tên xuất hiện chính xác một lần trong mỗi đối tượng mã. Tên không có tác động đến hiệu suất.
Vì mục đích thống kê, tôi đã xem xét hàm 20 dòng là giải pháp cho vấn đề Project Euler 15. Hàm này đã tạo đối tượng mã 292 byte. Nó sử dụng 7 tên riêng biệt trong bảng tên. Bạn sẽ phải sử dụng tên biến 41 ký tự để tăng gấp đôi kích thước của tệp mã byte.
Đó sẽ là tác động duy nhất - các tên cực lớn có thể làm chậm thời gian tải cho mô-đun của bạn.
- 1. Ảnh hưởng của việc sử dụng bộ nhớ trang có thể cho bản sao bộ nhớ không đồng bộ?
- 2. Cách sử dụng BigDecimal sẽ ảnh hưởng đến hiệu suất của ứng dụng?
- 3. Việc sử dụng lớn các tín hiệu và khe có ảnh hưởng đến hiệu suất của ứng dụng không?
- 4. Những ảnh hưởng của việc sử dụng ký hiệu trước một tên hàm trong C++?
- 5. Việc sử dụng các chức năng ẩn danh có ảnh hưởng đến hiệu suất không?
- 6. Việc tải nhiều gói ảnh hưởng đến hiệu suất tổng thể của một ứng dụng Symfony2?
- 7. Cài đặt giá trị chọn không ảnh hưởng đến việc sử dụng bàn phím
- 8. Các ứng dụng khác có ảnh hưởng đến hiệu suất ứng dụng của tôi trên iOS không?
- 9. iPhone/iPad: Có nhiều cuộc gọi NSLog() ảnh hưởng đến hiệu suất hoặc bộ nhớ ứng dụng không?
- 10. Tên tệp rõ ràng có ảnh hưởng đến SEO không?
- 11. Ảnh hưởng của việc áp dụng tên lớp CSS không tồn tại
- 12. Việc tạo một hàm nội tuyến có ảnh hưởng đến liên kết của nó không?
- 13. Việc không sử dụng ntext, văn bản và hình ảnh có ảnh hưởng đến SQL Server Compact Edition không?
- 14. Cách sử dụng bộ nhớ của mỗi ứng dụng Pool
- 15. Có ứng dụng bộ nhớ log4net không?
- 16. Việc sử dụng enum không có tên biến
- 17. Biến `.0` không thể truy cập trong` locals() `có ảnh hưởng đến bộ nhớ hoặc hiệu suất không?
- 18. Việc ghim một đối tượng trong LOH có ảnh hưởng đến hiệu năng GC không?
- 19. Sử dụng Notepad ++ làm Git Editor mà không ảnh hưởng đến cài đặt
- 20. Có nhiều dll trong dự án Windows Phone của bạn ảnh hưởng đến hiệu suất không?
- 21. Kiểm tra việc sử dụng bộ nhớ dài hạn của các ứng dụng iOS
- 22. Việc sử dụng SSL có nghĩa là bạn phải nói rằng ứng dụng của bạn sử dụng Mật mã?
- 23. C++: Dữ liệu đọc có thể ảnh hưởng đến bộ nhớ như thế nào?
- 24. Việc ký mã mà không đặt tên mạnh sẽ khiến ứng dụng của bạn mở để lạm dụng?
- 25. Có đúng là tính cuối cùng chỉ ảnh hưởng đến bố cục bộ nhớ của các số, chứ không ảnh hưởng đến chuỗi?
- 26. Hạn chế sử dụng bộ nhớ của ứng dụng .net
- 27. Phông chữ được cấp phép GPL có ảnh hưởng đến giấy phép của ứng dụng của riêng tôi không?
- 28. Chế độ PipeLine và Identity Pool có ảnh hưởng đến một ứng dụng đang chạy với Integrated Security không?
- 29. Trong SQL, việc sử dụng DISTINCT ảnh hưởng như thế nào đến hiệu suất?
- 30. Các dự án của sinh viên: chúng có ảnh hưởng đến triển vọng việc làm không?
+1 - tôi chuẩn bị hỏi điều này. – mauris