2012-02-23 68 views
42

Tôi đọc nhiều bài báo so sánh ngôn ngữ lập trình.Khả năng mở rộng có nghĩa là gì?

Có một từ thường đến: khả năng mở rộng. Tôi thực sự đã cố gắng tìm kiếm một lời giải thích đơn giản và rõ ràng, nhưng không tìm thấy nó.

Bạn có thể giải thích khả năng mở rộng có nghĩa là gì không?

Cảm ơn.

+2

Hãy xem xét di chuột cho thẻ khả năng mở rộng ... Đó là một khởi đầu tốt! Google nó, là tốt. Có hàng tỷ tài nguyên ở đó giải thích nó đầy đủ và dễ dàng ... chẳng hạn như http: // shiflett.org/blog/2003/oct/khả năng mở rộng là gì – king14nyr

+1

Trong các số liệu trong liên kết @ king14nyr, O (c^n), O (n) và O (log (n)), đều là ký hiệu Big-O . Như bạn có thể thấy với các tập dữ liệu lớn (n bản ghi), các chương trình có mẫu O (log (n)) sẽ chạy rất tốt, trong khi O (c^n) sẽ thực hiện VERY kém. Đó là hai thái cực. – Furbeenator

Trả lời

40

Khả năng mở rộng là khả năng của một chương trình để mở rộng quy mô. Ví dụ, nếu bạn có thể làm điều gì đó trên một cơ sở dữ liệu nhỏ (nói dưới 1000 bản ghi), một chương trình có khả năng mở rộng cao sẽ hoạt động tốt trên một tập hợp nhỏ cũng như làm việc tốt trên một tập hợp lớn (hàng triệu hoặc hàng tỷ bản ghi)).

Giống như khoảng cách cho biết, nó sẽ có sự tăng trưởng tuyến tính của các yêu cầu tài nguyên. Tra cứu ký hiệu Big-O để biết thêm chi tiết về cách chương trình có thể yêu cầu tính toán nhiều hơn thì dữ liệu đầu vào càng lớn. Một cái gì đó parabol như Big-O (x^2) là ít hiệu quả hơn với đầu vào x lớn hơn một cái gì đó tuyến tính như Big-O (x).

+1

Điều này thực sự là sai.cho một khả năng mở rộng tuyến tính sẽ có tăng trưởng tuyến tính. bạn vẫn có thể mở rộng theo các cách phi tuyến tính (tự nhiên đến giới hạn). Thứ hai khả năng mở rộng được tăng/hiển thị bằng cách thay đổi phần cứng. nếu tôi có một thiết lập rất lớn và tôi lần đầu tiên chạy nó với 1 TPS trong khi nó thực sự có thể xử lý 100 TPS - chạy nó trên 100TPS không phải là mở rộng nó. Nếu tải có thể tăng lên 10KTPS bằng cách thay đổi HW thì nó có thể mở rộng được –

+3

Trong ngữ cảnh của câu hỏi OP, tôi đã mô tả khả năng mở rộng của thuật toán phần mềm. Ngữ cảnh này là điển hình trong môn học đại học. Khi so sánh khả năng mở rộng của hai thuật toán tiềm năng, một với các yêu cầu tài nguyên tuyến tính sẽ có khả năng mở rộng cao so với các yêu cầu về tài nguyên parabol. – Furbeenator

+0

Tôi nhận được khả năng mở rộng cụ thể trong thuật toán phần mềm. Nhưng khả năng mở rộng trong ngôn ngữ lập trình là gì? –

6

Sự hiểu biết của tôi là điều này có nghĩa là tăng tăng tuyến tính trong đầu ra được yêu cầu chỉ yêu cầu tăng tuyến tính trong tài nguyên.

19

Khả năng mở rộng là đặc điểm trong đó giải pháp phần mềm có thể xử lý nhiều tải công việc hơn. Đây có thể là dữ liệu bộ lớn hơn, tỷ lệ yêu cầu cao hơn, sự kết hợp của kích thước và tốc độ, vv

Khi nói về hệ thống khả năng mở rộng, chúng ta thường phân biệt giữa

  • "Mở rộng" - khả năng phát triển bằng cách sử dụng phần cứng mạnh
  • "Scale out" - khả năng phát triển bằng cách thêm phần cứng hơn

một giải pháp mà có thể mở rộng ra thường có thể phát triển để tải lager trong một hiệu quả chi phí cách hơn. Một điều quan trọng cần biết ở đây là Amdahl's law tuyên bố rằng khả năng mở rộng được giới hạn bởi phần tuần tự của phần mềm

8

Đã có câu trả lời tuyệt vời ở đây, chỉ muốn thêm một vài điều ở đây.

Khả năng mở rộng có thể đạt được bằng 2 cách

Dọc theo cách này, bạn thêm nhiều sản phẩm cứng hơn như RAM, bộ xử lý hoặc nhiều nút hơn. Bạn cũng giới thiệu cân bằng tải, sẽ giúp định tuyến các cuộc gọi đến các máy chủ khác nhau dựa trên thuật toán định tuyến được sử dụng. Ứng dụng hiện có thể xử lý nhiều tải hơn khi tải đang được chia sẻ trên các máy chủ.

Ngang - Trong quy mô theo chiều ngang, bạn kiến ​​trúc sư ứng dụng theo cách sao cho tôi có thể hoạt động tốt trong lưu lượng truy cập song song hơn. Nếu bạn đang sử dụng phiên để duy trì thông tin người dùng, dưới máy chủ đơn tải nặng có thể bận rộn hơn trong việc quản lý máy chủ, vì vậy trong trường hợp này bạn có thể kiểm tra khả năng đi không quốc tịch. Nó cũng có thể đáp ứng yêu cầu đến từ cùng một người dùng song song các câu trả lời nối tiếp thay thế xảy ra nếu các phiên đang được sử dụng.

Các vấn đề liên quan