- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力了解线程与 CPU 使用率的关系。有很多关于线程与多处理的讨论(一个很好的概述是 this answer )所以我决定通过在运行 Windows 10、Python 3.4 的 8 CPU 笔记本电脑上启动最大线程数来测试这一点。
我的假设是所有线程都将绑定(bind)到一个 CPU。
biên tập:事实证明这不是一个好的假设。我现在明白,对于多线程代码,一次只能一个 python 代码运行(无论在哪里/在哪个内核上)。这与多处理代码不同(其中进程是独立的并且确实是独立运行的)。
当我读到这些差异时,它是 one answer这实际上澄清了这一点。
我认为这也解释了下面的 CPU View :它是分布在许多 CPU 上的许多线程的平均 View ,但只有其中一个在给定时间运行(对所有运行所有线程的“平均”)时间)。
它不是链接问题的副本(它解决了相反的问题,即一个核心上的所有线程),我会把它挂起来,以防有一天有人有类似的问题,并希望能得到我的启发。
Mã số
import threading
thời gian nhập khẩu
def calc():
time.sleep(5)
trong khi Đúng:
a = 2356^36
n = 0
trong khi Đúng:
thử:
n += 1
t = threading.Thread(target=calc)
t.bắt đầu()
except RuntimeError:
print("max threads: {n}".format(n=n))
phá vỡ
khác:
print('.')
time.sleep(100000)
导致启动了 889 个线程。
然而,CPU 上的负载是分散的(对于纯 CPU 计算来说,负载低得惊人,否则笔记本电脑在不运行我的脚本时会空载):
为什么会这样?线程是否作为一个包在 CPU 之间不断移动,而我看到的只是一个平均值(实际情况是在给定时刻所有线程都在一个 CPU 上)?或者它们确实是分布式的?
1 Câu trả lời
时至今日,“一个线程拥有 GIL”的情况仍然存在。因此一次运行一个线程。
线程在操作系统级别进行管理。发生的情况是每 100 个“滴答”(=解释器指令)运行的线程释放 GIL 并重置滴答计数器。
因为本例中的线程进行连续计算,很快就达到了 100 条指令的节拍限制,导致 GIL 几乎立即释放,并且线程之间的“战斗”开始获取 GIL。
因此,我的假设是您的操作系统的负载高于预期,因为(太)快速的线程切换 + 几乎连续释放和获取 GIL。操作系统花在切换上的时间比实际做任何有用的计算都多。
正如您自己提到的,要一次使用多个内核,最好查看多处理模块(joblib/Parallel)。
有趣的阅读: ../../../python/UnderstandingGIL.pdf
关于python - 为什么线程分布在 CPU 之间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238629/
Tôi đang sử dụng Bootstrap với css và java script. Tôi thực sự gặp khó khăn khi vẽ phần nền này bằng CSS mà không ảnh hưởng đến mã front-end. Trong nhiều câu hỏi, mọi người đặt chiều rộng và chiều cao thành 0%. Nhưng vì thanh điều hướng của tôi, tôi không thể sử dụng
Tôi đang viết một chương trình bằng C để đọc nội dung của một tập tin. Mã như sau: #include void main() { char line[90]; while(scanf("%79[^\
Tôi muốn lấy tất cả các đường góc của một mảng ma trận bằng JavaScript. Giả sử đầu vào và đầu ra như sau: đầu vào = [ [1,2,3], [4,5,6], [7,8,9], ] đầu ra =
Tôi có thể vẽ các đường thẳng, hình tròn và các hình dạng khác bằng pdfmake không? Nếu có, có tài liệu hoặc mẫu nào không? Tôi muốn thay thế pdfmake bằng jsPDF. Câu trả lời tốt nhất là có thể. pdfm
Tôi có một tiện ích svg nhỏ có mục đích hiển thị danh sách các góc (xem hình ảnh). Bây giờ góc là một phần tử đường thẳng chỉ có nét vẽ và không có phần tô. Nhưng bây giờ tôi muốn sử dụng một màu "tô bên trong" và một màu "nét vẽ/viền". Tôi đoán là phần tử đường thẳng không thể giải quyết được vấn đề này.
Tôi đang viết một trình chuyển đổi tia rất cơ bản cho một cảnh 3D với các đối tượng hình tam giác và mọi thứ hoạt động tốt cho đến khi tôi quyết định thử chuyển đổi tia từ các điểm khác ngoài điểm gốc của cảnh (0/0/0). Tuy nhiên, khi tôi thay đổi gốc tia thành (0/1/0), thử nghiệm giao điểm không thành công.
Câu hỏi này đã có câu trả lời: Tại sao mọi người lại viết "#!/usr/bin/env python" ở dòng đầu tiên của tập lệnh Python? (22 trả lời
Bạn nghĩ sao về việc sử dụng khoảng 50 dấu sao* và vẽ một đường ngang bằng vòng lặp for? Khi tôi thử điều này, kết quả là một danh sách gồm 50 dấu sao theo chiều dọc (thay vì theo chiều ngang). công khai void drawAstline() { f
Đây là giao diện người dùng khiến quả bóng rơi theo đường chéo, nhưng quả bóng vẫn đứng yên; chức năng luồn dây dường như không hoạt động chính xác. Bạn có thể cho tôi biết làm thế nào để quả bóng di chuyển được không? Vui lòng tải xuống một quả bóng và thay đổi thư mục để chương trình có thể tìm thấy nơi quả bóng của bạn được phân bổ. Không nhất thiết phải tải xuống sân bóng đá, nhưng bạn có thể tải xuống nếu muốn.
Tôi đang sử dụng Jmeter và Ant trong một trong các dự án của mình, khi chúng tôi tạo báo cáo, nó sẽ hiển thị URL, #Mẫu, Lỗi, Tỷ lệ thành công, Thời gian trung bình, Thời gian tối thiểu, Thời gian tối đa trong báo cáo. Tôi cũng muốn đưa mốc thời gian 90% vào báo cáo. Hiện nay
Tôi đang gặp một vấn đề bất thường và tôi hy vọng ai đó có thể giúp tôi. Tôi muốn vẽ đường Swing hoặc đường lượn sóng bằng Canvas (android) nhưng tôi không biết cách thực hiện. Phần này sẽ trở thành đuôi của nòng nọc, vì vậy lý tưởng nhất là tôi muốn nó có hình dạng giống hình tam giác, với một đầu lớn hơn.
Câu hỏi này đã có câu trả lời: Kiểm tra va chạm của các hình dạng bằng JavaFX (1 câu trả lời) Đã đóng 8 năm trước. Tôi đang sử dụng thư viện JavaFx 8. Nhiệm vụ của tôi rất đơn giản: Tôi muốn
Cách chia tệp theo phần trăm được đánh số. Số hàng? Giả sử tôi muốn chia tệp của mình thành 3 phần (60%/20%/20% phần), tôi có thể thực hiện thủ công: $ wc -l brown.txt 57339 brown.tx
Tôi đang cố gắng đạt được điều gì đó như thế này: Nhưng đây là cách tôi đã làm được. Bạn có thể giúp tôi đạt được kết quả như mong đợi không? Cập nhật: Nếu tôi xóa phần phụ thuộc bootstrap.css, vấn đề sẽ biến mất. Làm sao tôi có thể sử dụng nó với Bootstrap?
Hiện tại tôi đang xây dựng một trang web và gặp phải sự cố với transform: scale. Tôi có một nút và khi người dùng di chuột qua nó, hai điều xảy ra: nền "quét" qua với một đường góc cạnh nhãn nút thay đổi màu sắc nút trở nên hơi
Tôi cần vẽ biểu đồ số lượng lớn các điểm dữ liệu bằng các đường thẳng và phép biến đổi afin (điều chỉnh tỷ lệ biểu đồ cho phù hợp với Chế độ xem). Hiện tại, tôi đang sử dụng NSBezierPath, nhưng tôi nghĩ nó khá kém hiệu quả (vì các điểm được sao chép vào đường dẫn Bezier trước khi vẽ). Bằng cách cắt dữ liệu của tôi thành
Tôi đang sử dụng trình phát hiện tính năng HOG dựa trên phân loại SVM. Tôi có thể trích xuất biển số xe thành công, nhưng biển số xe trích xuất được có một số pixel/dòng không cần thiết ngoài số biển số. Quy trình xử lý hình ảnh của tôi như sau: Áp dụng trình phát hiện HOG trên hình ảnh thang độ xám để cắt các vùng được phát hiện
Tôi có hình ảnh sau: Tôi muốn tô đầy phần phác thảo của hình ảnh (tức là tôi muốn tô đầy các đường trong hình ảnh này). Tôi đã thử đóng hình thái nhưng việc sử dụng hạt nhân hình chữ nhật có kích thước 3x3 và 10 lần lặp lại không lấp đầy toàn bộ đường viền. Tôi cũng đã thử một hạt nhân 21x21 và 1 lần lặp, nhưng
Tôi phải tìm một thuật toán có thể tìm ra tổng số giao điểm giữa hai tập hợp mảng khi một trong các mảng đã được sắp xếp. Ví dụ, chúng ta có hai mảng này và chúng ta vẽ các đường thẳng tới các số tương ứng. Hai mảng này cung cấp cho chúng ta tổng cộng 7 giao điểm. Có thuật toán nào có thể giúp tôi giải quyết vấn đề này không?
Nói một cách đơn giản - Tôi muốn vẽ một tia/đường thẳng từ mặt phẳng cắt gần đến mặt phẳng cắt xa bằng phép chiếu phối cảnh. Tôi tin rằng có tọa độ thế giới được chuẩn hóa chính xác được tạo ra bằng cách nhấp chuột bằng các phương pháp được mô tả trong nhiều hướng dẫn lập trình OpenGL/đồ họa. Vấn đề tôi đang gặp phải là ánh sáng của tôi có vẻ
Tôi là một lập trình viên xuất sắc, rất giỏi!