Tối ưu hóa để phát triển bền vững với Amazon CodeWhisperer | Dịch vụ web của Amazon

Tối ưu hóa để phát triển bền vững với Amazon CodeWhisperer | Dịch vụ web của Amazon

Bài đăng này khám phá cách Mã Amazon có thể giúp tối ưu hóa mã để phát triển bền vững thông qua việc tăng hiệu quả sử dụng tài nguyên. Mã hóa hiệu quả về mặt tài nguyên tính toán là một kỹ thuật nhằm mục đích giảm lượng năng lượng cần thiết để xử lý một dòng mã và do đó, hỗ trợ các công ty tiêu thụ ít năng lượng hơn về tổng thể. Trong kỷ nguyên điện toán đám mây này, các nhà phát triển hiện đang khai thác các thư viện nguồn mở và sức mạnh xử lý nâng cao sẵn có để xây dựng các dịch vụ vi mô quy mô lớn cần hoạt động hiệu quả, hoạt động hiệu quả và linh hoạt. Tuy nhiên, các ứng dụng hiện đại thường bao gồm mã mở rộng, đòi hỏi tài nguyên máy tính đáng kể. Mặc dù tác động trực tiếp đến môi trường có thể không rõ ràng, nhưng mã chưa được tối ưu hóa sẽ khuếch đại lượng khí thải carbon của các ứng dụng hiện đại thông qua các yếu tố như mức tiêu thụ năng lượng tăng cao, thời gian sử dụng phần cứng kéo dài và các thuật toán lỗi thời. Trong bài đăng này, chúng ta khám phá cách Amazon CodeWhisperer giúp giải quyết những mối lo ngại này và giảm tác động môi trường từ mã của bạn.

Amazon CodeWhisperer là người bạn đồng hành mã hóa AI tổng hợp giúp tăng tốc độ phát triển phần mềm bằng cách đưa ra đề xuất dựa trên mã hiện có và nhận xét ngôn ngữ tự nhiên, giảm nỗ lực phát triển tổng thể và giải phóng thời gian để động não, giải quyết các vấn đề phức tạp và tạo mã khác biệt. Amazon CodeWhisperer có thể giúp các nhà phát triển hợp lý hóa quy trình làm việc của họ, nâng cao chất lượng mã, xây dựng các trạng thái bảo mật mạnh mẽ hơn, tạo ra các bộ thử nghiệm mạnh mẽ và viết mã thân thiện với tài nguyên tính toán, có thể giúp bạn tối ưu hóa cho sự bền vững của môi trường. Nó có sẵn như là một phần của Bộ công cụ dành cho mã Visual Studio, Đám mây AWS9, JupyterLab, Xưởng sản xuất Amazon SageMaker, AWS Lambda, Keo AWSvà JetBrains IntelliJ IDEA. Amazon CodeWhisperer hiện hỗ trợ Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, Shell scripting, SQL và Scala.

Tác động của mã không được tối ưu hóa lên điện toán đám mây và lượng khí thải carbon của ứng dụng

Cơ sở hạ tầng của AWS tiết kiệm năng lượng gấp 3.6 lần so với mức trung bình của các trung tâm dữ liệu doanh nghiệp được khảo sát của Hoa Kỳ và tiết kiệm năng lượng gấp tới 5 lần so với trung tâm dữ liệu doanh nghiệp trung bình ở Châu Âu. Do đó, AWS có thể giúp giảm lượng khí thải carbon của khối lượng công việc lên tới 96%. Giờ đây, bạn có thể sử dụng Amazon CodeWhisperer để viết mã chất lượng với mức sử dụng tài nguyên và tiêu thụ năng lượng giảm, đồng thời đáp ứng các mục tiêu về khả năng mở rộng đồng thời hưởng lợi từ cơ sở hạ tầng tiết kiệm năng lượng của AWS.

Tăng cường sử dụng tài nguyên

Mã không được tối ưu hóa có thể dẫn đến việc sử dụng tài nguyên điện toán đám mây không hiệu quả. Do đó, có thể cần nhiều máy ảo (VM) hoặc bộ chứa hơn, làm tăng khả năng phân bổ tài nguyên, sử dụng năng lượng và lượng khí thải carbon liên quan của khối lượng công việc. Bạn có thể gặp phải sự gia tăng sau đây:

  • Sử dụng CPU – Mã không được tối ưu hóa thường chứa các thuật toán hoặc phương pháp mã hóa kém hiệu quả đòi hỏi chu kỳ CPU quá mức để chạy.
  • Tiêu thụ bộ nhớ – Quản lý bộ nhớ không hiệu quả trong mã không được tối ưu hóa có thể dẫn đến việc cấp phát, giải phóng bộ nhớ hoặc sao chép dữ liệu không cần thiết.
  • Thao tác vào/ra đĩa – Mã không hiệu quả có thể thực hiện quá nhiều thao tác vào/ra (I/O). Ví dụ: nếu dữ liệu được đọc từ hoặc ghi vào đĩa thường xuyên hơn mức cần thiết thì điều đó có thể làm tăng độ trễ và mức sử dụng I/O của đĩa.
  • Sử dụng mạng – Do kỹ thuật truyền dữ liệu không hiệu quả hoặc giao tiếp trùng lặp, mã được tối ưu hóa kém có thể gây ra lưu lượng mạng quá mức. Điều này có thể dẫn đến độ trễ cao hơn và tăng mức sử dụng băng thông mạng. Việc sử dụng mạng ngày càng tăng có thể dẫn đến chi phí và nhu cầu tài nguyên cao hơn trong trường hợp tài nguyên mạng bị đánh thuế dựa trên mức sử dụng, chẳng hạn như trong điện toán đám mây.

Tiêu thụ năng lượng cao hơn

Các ứng dụng hỗ trợ cơ sở hạ tầng có mã kém hiệu quả sẽ sử dụng nhiều sức mạnh xử lý hơn. Việc sử dụng quá mức tài nguyên máy tính do mã cồng kềnh, không hiệu quả có thể dẫn đến mức tiêu thụ năng lượng và sản sinh nhiệt cao hơn, sau đó cần nhiều năng lượng hơn để làm mát. Cùng với các máy chủ, hệ thống làm mát, cơ sở hạ tầng phân phối điện và các bộ phận phụ trợ khác cũng tiêu thụ năng lượng.

Những thách thức về khả năng mở rộng

Trong quá trình phát triển ứng dụng, các vấn đề về khả năng mở rộng có thể do mã không được tối ưu hóa. Mã như vậy có thể không mở rộng hiệu quả khi nhiệm vụ phát triển, đòi hỏi nhiều tài nguyên hơn và sử dụng nhiều năng lượng hơn. Điều này làm tăng năng lượng tiêu thụ bởi các đoạn mã này. Như đã đề cập trước đó, mã kém hiệu quả hoặc lãng phí có tác động phức tạp trên quy mô lớn.

Việc tiết kiệm năng lượng tổng hợp từ việc tối ưu hóa mã mà khách hàng chạy trong một số trung tâm dữ liệu nhất định thậm chí còn trở nên phức tạp hơn khi chúng tôi xem xét rằng các nhà cung cấp đám mây như AWS có hàng chục trung tâm dữ liệu trên khắp thế giới.

Amazon CodeWhisperer sử dụng máy học (ML) và các mô hình ngôn ngữ lớn để cung cấp các đề xuất mã trong thời gian thực dựa trên mã gốc và nhận xét ngôn ngữ tự nhiên, đồng thời cung cấp các đề xuất mã có thể hiệu quả hơn. Hiệu quả sử dụng cơ sở hạ tầng của chương trình có thể được tăng lên bằng cách tối ưu hóa mã bằng cách sử dụng các chiến lược bao gồm cải tiến thuật toán, quản lý bộ nhớ hiệu quả và giảm các hoạt động I/O vô nghĩa.

Tạo, hoàn thiện và đề xuất mã

Hãy cùng xem xét một số tình huống trong đó Amazon CodeWhisperer có thể hữu ích.

Bằng cách tự động hóa việc phát triển mã lặp đi lặp lại hoặc phức tạp, các công cụ tạo mã giảm thiểu khả năng xảy ra lỗi của con người trong khi tập trung vào tối ưu hóa dành riêng cho nền tảng. Bằng cách sử dụng các mẫu hoặc mẫu đã thiết lập, các chương trình này có thể tạo ra mã tuân thủ nhất quán hơn các phương pháp hay nhất về tính bền vững. Các nhà phát triển có thể tạo mã tuân thủ các tiêu chuẩn mã hóa cụ thể, giúp cung cấp mã nhất quán và đáng tin cậy hơn trong suốt dự án. Mã kết quả có thể hiệu quả hơn vì nó loại bỏ các biến thể mã hóa của con người và có thể dễ đọc hơn, cải thiện tốc độ phát triển. Nó có thể tự động triển khai các cách để giảm kích thước và độ dài chương trình ứng dụng, chẳng hạn như xóa mã thừa, cải thiện khả năng lưu trữ biến hoặc sử dụng các phương pháp nén. Những tối ưu hóa này có thể hỗ trợ tối ưu hóa mức tiêu thụ bộ nhớ và tăng hiệu suất hệ thống tổng thể bằng cách thu nhỏ kích thước gói.

Trí tuệ nhân tạo có khả năng làm cho việc lập trình trở nên bền vững hơn bằng cách tối ưu hóa việc phân bổ nguồn lực. Việc xem xét một cách toàn diện lượng khí thải carbon của một ứng dụng là rất quan trọng. Công cụ như Trình biên dịch mã CodeGuru của Amazon có thể thu thập dữ liệu hiệu suất để tối ưu hóa độ trễ giữa các thành phần. Dịch vụ lập hồ sơ kiểm tra các lần chạy mã và xác định các cải tiến tiềm năng. Sau đó, các nhà phát triển có thể tinh chỉnh thủ công mã được tạo tự động dựa trên những phát hiện này để cải thiện hơn nữa hiệu quả sử dụng năng lượng. Sự kết hợp giữa AI tổng hợp, lập hồ sơ và giám sát của con người tạo ra một vòng phản hồi có thể liên tục cải thiện hiệu quả mã và giảm tác động đến môi trường.

Ảnh chụp màn hình sau đây hiển thị cho bạn các kết quả được tạo từ CodeGuru Profiler ở chế độ độ trễ, bao gồm I/O mạng và ổ đĩa. Trong trường hợp này, ứng dụng vẫn dành phần lớn thời gian ở ImageProcessor.extractTasks (hàng dưới cùng thứ hai) và hầu như mọi lúc bên trong đều có thể chạy được, điều đó có nghĩa là nó không chờ đợi bất cứ điều gì. Bạn có thể xem các trạng thái luồng này bằng cách chuyển sang chế độ trễ từ chế độ CPU. Điều này có thể giúp bạn hiểu rõ điều gì đang ảnh hưởng đến thời gian trên đồng hồ treo tường của ứng dụng. Để biết thêm thông tin, hãy tham khảo Giảm lượng khí thải carbon của tổ chức của bạn bằng Amazon CodeGuru Profiler.

hình ảnh

Tạo các trường hợp thử nghiệm

Mã Amazon có thể giúp đề xuất các trường hợp kiểm thử và xác minh chức năng của mã bằng cách xem xét các giá trị biên, trường hợp biên và các vấn đề tiềm ẩn khác có thể cần được kiểm tra. Ngoài ra, Amazon CodeWhisperer có thể đơn giản hóa việc tạo mã lặp đi lặp lại để kiểm thử đơn vị. Ví dụ: nếu bạn cần tạo dữ liệu mẫu bằng câu lệnh INSERT, Amazon CodeWhisperer có thể tạo các phần chèn cần thiết dựa trên mẫu. Các yêu cầu về tài nguyên tổng thể để kiểm thử phần mềm cũng có thể được giảm bớt bằng cách xác định và tối ưu hóa các trường hợp kiểm thử tiêu tốn nhiều tài nguyên hoặc loại bỏ những trường hợp dư thừa. Các bộ thử nghiệm được cải tiến có khả năng làm cho ứng dụng trở nên thân thiện với môi trường hơn bằng cách tăng hiệu quả sử dụng năng lượng, giảm mức tiêu thụ tài nguyên, giảm thiểu chất thải và giảm lượng khí thải carbon của khối lượng công việc.

Để có trải nghiệm thực tế hơn với Amazon CodeWhisperer, hãy tham khảo Tối ưu hóa việc phát triển phần mềm với Amazon CodeWhisperer. Bài đăng giới thiệu các đề xuất mã từ Amazon CodeWhisperer trong Xưởng sản xuất Amazon SageMaker. Nó cũng trình bày mã được đề xuất dựa trên các nhận xét để tải và phân tích tập dữ liệu.

Kết luận

Trong bài đăng này, chúng ta đã tìm hiểu cách Amazon CodeWhisperer có thể giúp các nhà phát triển viết mã được tối ưu hóa và bền vững hơn. Bằng cách sử dụng các mô hình ML nâng cao, Amazon CodeWhisperer phân tích mã của bạn và đưa ra các đề xuất được cá nhân hóa để nâng cao hiệu quả, từ đó có thể giảm chi phí và giúp giảm lượng khí thải carbon.

Bằng cách đề xuất những điều chỉnh nhỏ và các phương pháp tiếp cận thay thế, Amazon CodeWhisperer cho phép các nhà phát triển cắt giảm đáng kể mức sử dụng tài nguyên và lượng phát thải mà không phải hy sinh chức năng. Cho dù bạn đang tìm cách tối ưu hóa cơ sở mã hiện có hay đảm bảo các dự án mới sử dụng tài nguyên hiệu quả, Amazon CodeWhisperer có thể là sự trợ giúp vô giá. Để tìm hiểu thêm về tài nguyên Amazon CodeWhisperer và AWS Sustainability để tối ưu hóa mã, hãy xem xét các bước tiếp theo sau:


Giới thiệu về tác giả

Tối ưu hóa để phát triển bền vững với Amazon CodeWhisperer | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Isha Dua là Kiến trúc sư Giải pháp Cấp cao có trụ sở tại Khu vực Vịnh San Francisco. Cô giúp các khách hàng doanh nghiệp của AWS phát triển bằng cách hiểu mục tiêu và thách thức của họ, đồng thời hướng dẫn họ cách có thể kiến ​​trúc ứng dụng của mình theo cách gốc trên đám mây trong khi vẫn đảm bảo khả năng phục hồi và khả năng mở rộng. Cô ấy đam mê công nghệ học máy và tính bền vững của môi trường.

Tối ưu hóa để phát triển bền vững với Amazon CodeWhisperer | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Ajjay Govindaram là Kiến trúc sư giải pháp cấp cao tại AWS. Anh ấy làm việc với các khách hàng chiến lược đang sử dụng AI/ML để giải quyết các vấn đề kinh doanh phức tạp. Kinh nghiệm của anh ấy là cung cấp định hướng kỹ thuật cũng như hỗ trợ thiết kế cho các triển khai ứng dụng AI/ML quy mô nhỏ đến quy mô lớn. Kiến thức của anh bao gồm từ kiến ​​trúc ứng dụng đến dữ liệu lớn, phân tích và máy học. Anh ấy thích nghe nhạc khi nghỉ ngơi, trải nghiệm ngoài trời và dành thời gian cho những người thân yêu của mình.

Tối ưu hóa để phát triển bền vững với Amazon CodeWhisperer | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Erick Irigoyen là Kiến trúc sư giải pháp tại Amazon Web Services, tập trung vào các khách hàng trong ngành Bán dẫn và Điện tử. Anh hợp tác chặt chẽ với khách hàng để hiểu những thách thức kinh doanh của họ và xác định cách tận dụng AWS để đạt được các mục tiêu chiến lược của họ. Công việc của anh chủ yếu tập trung vào các dự án liên quan đến Trí tuệ nhân tạo và Học máy (AI/ML). Trước khi gia nhập AWS, anh là Chuyên gia tư vấn cấp cao tại bộ phận Phân tích nâng cao của Deloitte, nơi anh chỉ đạo các quy trình làm việc trong một số cam kết trên khắp Hoa Kỳ, tập trung vào Phân tích và AI/ML. Erick có bằng Cử nhân Kinh doanh của Đại học San Francisco và bằng Thạc sĩ về Phân tích của Đại học Bang North Carolina.

Dấu thời gian:

Thêm từ Học máy AWS