Python xlrd: подавление предупреждающих сообщений

Я использую xlrd для обработки файлов Excel. Я запускаю сценарий для папки, содержащей много файлов, и печатаю сообщения, связанные с файлами. Однако для каждого файла, который я запускаю, я также получаю следующее сообщение об ошибке xlrd:

WARNING *** OLE2 inconsistency: SSCS size is 0 but SSAT size is non-zero

Есть ли способ подавить это сообщение об ошибке, так что интерфейс командной строки будет печатать только то сообщение, которое я хочу?

-121--1319915- Какое из них быстрее? Вызов функции или оператор Conditional if? Перед тем, как ответить на этот вопрос, рассмотрите прогноз ветви. У меня есть несколько сценариев, где я могу заменить условный оператор вызовом функции с помощью указателя функции....

Прежде чем ответить на этот вопрос, рассмотрите предсказание ветви.

У меня есть несколько сценариев, где я могу заменить условный оператор вызовом функции с помощью указателя функции. Кое-что вроде этого. (Вы можете думать о программировании на основе компонентов вместо наследования для аналогичного типа senario)

     class Shape
     {
        float Area()
        {
            if(type == SQUARE)
             {
                return length*length;
             }
            else if(type == RECTANGLE)
            {
             return length*breadth;
            }
        } 
     }

Один и тот же класс может быть написан так.

       class Shape
     {
        void SetAreaFunction(void *funcptr)//this function is used to set the current AreaFunc
        {
             CurrentAreaFunc = funcptr ;//this holds the pointer to current area func
        }
        float SqauareArea();//this will return square area
        float RectangleArea();//this will return rectangle area 
        float Area()
        {
            currentAreaFunc();
        } 
     }

ЕСЛИ вы учитываете вышеприведенные случаи, оба достигают одинаковых результатов. Но, я думаю о производительности накладных расходов. Во втором случае я избегаю проблемы прогнозирования ветвей, имея вызов функции.

Теперь дайте мне знать, что является лучшей практикой и "лучше оптимизированным кодом" в такого рода сенариях. (btw, мне не нравится утверждение "Предварительная оптимизация корень всего зла", так как оптимизация имеет свои преимущества, поэтому я рассматриваю оптимизацию моего кода!)

P.S: Я не против, если кто-то даст подробный обзор о том, "насколько плохим может быть предсказание ветвей" даже в коде сборки.

Обновление: после профилирования (аналогичный тип кода выше),
Если Состояние преуспело в этом виде senario. Может ли кто-нибудь дать повод для этого? Функциональный код вызова может быть предварительно выбран, так как нет кода ветвления? Но вот его выглядит в другую сторону.. ветвящийся код выигрывает!: O Профилирован на оптимизации Intel Mac Osx, GCC O3/Os.

6
задан Sergey K. 6 December 2017 в 17:21
поделиться