python cpu_count和linux nproc命令有什么区别

时间:2019-10-10 04:31:52

标签: python python-3.x linux

当我使用nproc时,我得到了18 cpu。 当我使用top命令然后按1时,我在屏幕上看到8个CPU

实际上,在docker环境中,8 cpu是正确的答案。 top命令和python cpu_count()获得正确的结果 nproc和/ proc / cpuinfo结果错误

我在下面进行了一些测试

height

在Python 3.6.1的源代码中,我找到了

文件:Modules / posixmodule.c

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".StorageActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </FrameLayout>
    </LinearLayout>

    <androidx.design.widget.NavigationView
        app:headerLayout="@layout/drawer_header"
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:itemIconTint="#000000"
        app:itemTextColor="#000000"
        app:menu="@menu/menu">

    </androidx.design.widget.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout >

一段时间后,我发现在相同的docker环境中可以更改“ nproc”命令返回的cpu编号

有人可以解释吗

[log@xxx /home/log]
$python -c "import multiprocessing as mp;print(mp.cpu_count())"
8

[log@xxx /home/log]
$nproc
18

[log@xxx /home/log]
$cat /proc/cpuinfo | grep processor |wc -l
18

0 个答案:

没有答案