Articles of python

Étendre python avec C, retourner numpy tableau donne garbage

J’emballe un fichier C pour pouvoir l’utiliser en python. La sortie de la fonction C est un tableau de doublons. Je veux que ce soit un tableau numpy en python. J’ai des ordures. Voici un exemple qui génère l’erreur. Tout d’abord, le fichier C (concentrez-vous sur la dernière définition de fonction, tout le rest devrait […]

pourquoi PyObject * peut pointer sur n’importe quel object en python?

Dans le code source de python, il existe des définitions de macros comme celles-ci: #define PyObject_HEAD \ int ob_refcnt; \ struct _typeobject *ob_type; #define PyObject_VAR_HEAD \ PyObject_HEAD \ int ob_size; typedef struct _object { PyObject_HEAD } PyObject; typedef struct _object { PyObject_HEAD long ob_ival; } PyIntObject; typedef struct { PyObject_VAR_HEAD } PyVarObject; La question qui […]

Est-il possible de comstackr du code c en utilisant python?

Je veux construire un programme python qui obtient en entrée un chemin d’access au fichier .c puis le comstack. Le programme affichera OK à l’écran si la compilation est réussie et BAD sinon. J’essayais de google, mais je n’ai rien trouvé. J’ai également essayé d’exécuter cmd au sein de python avec un argument du programme […]

python – comment implémenter une fonction C en attente (coroutine)

Environnement: une RTOS coopérative en C et une machine virtuelle micropython font partie des tâches. Pour que la VM ne bloque pas les autres tâches RTOS, RTOS_sleep() dans vm.c:DISPATCH() afin qu’après chaque bytecode exécuté, la VM abandonne le contrôle à la tâche RTOS suivante. J’ai créé une interface uPy pour obtenir des données de manière […]

Équivalent Python du code C de Bit Twiddling Hacks?

J’ai une méthode de comptage un peu que j’essaye de faire aussi vite que possible. Je veux essayer l’algorithme ci-dessous de Bit Twiddling Hacks , mais je ne sais pas C. Qu’est-ce que ‘type T’ et quel est l’équivalent python de (T) ~ (T) 0/3? Une généralisation de la meilleure méthode de comptage de bits […]

Quels sont les pièges possibles du portage de Psyco en 64 bits?

Les documents Psyco disent: Pour rappel, Psyco ne fonctionne sur aucun système 64 bits. Cela vaut la peine d’être noté à nouveau, maintenant que le dernier “Snow Leopart” de Mac OS / X 10.6 est livré avec un Python par défaut qui est 64 bits sur les ordinateurs 64 bits. La seule manière d’utiliser Psyco […]

Implémentation de l’algorithme de rapprochement des ensembles

Je cherche des implémentations de l’algorithme de rapprochement des ensembles. Le problème est le suivant: il existe deux ensembles avec des éléments identifiés par une valeur relativement compacte (par exemple, UUID ou MD5 / SHA1 / quelle que soit hachage) situés sur des machines différentes. Ces ensembles diffèrent par relativement peu d’éléments et je souhaite […]

Dégradation des performances de la multiplication masortingcielle de masortingces à simple précision ou à double précision sur une machine multicœur

METTRE À JOUR Malheureusement, à cause de mon oubli, j’avais une version plus ancienne de MKL (11.1) liée à numpy. La version plus récente de MKL (11.3.1) donne les mêmes performances en C et lorsqu’il est appelé à partir de python. Ce qui obscurcissait les choses, même si relier explicitement les bibliothèques partagées compilées au […]

Analyseur asn.1 en C / Python

Je cherche une solution pour parsingr les fichiers de spécifications asn.1 et générer un décodeur à partir de ceux-ci. Idéalement, j’aimerais travailler avec des modules Python, mais si rien n’est disponible, j’utiliserais les bibliothèques C / C ++ et les interfacerais avec Python avec la pléthore de solutions disponibles. Dans le passé, j’utilisais pyasn1 et […]

Pourquoi Python est-il plus rapide que C lors de la concaténation de deux chaînes?

Actuellement, je veux comparer la vitesse de Python et de C lorsqu’ils sont habitués à faire des trucs de chaîne. Je pense que C devrait donner de meilleures performances que Python; Cependant, j’ai eu un résultat totalement opposé. Voici le programme C: #include #include #define L (100*1024) char s[L+1024]; char c[2*L+1024]; double time_diff( struct timeval […]