Discussion:
Minimizing CPU Utilization of audisp Plugin
Osama Elnaggar
2018-10-05 13:11:28 UTC
Permalink
Hi,

I'm currently working on a Python audisp plugin. My main routine looks
like this:

if __name__ == '__main__':

try:
...

aup = auparse.AuParser(auparse.AUSOURCE_FEED)
aup.add_callback(process_event, None)

while True:
for _ in fileinput.input():
aup.feed(_)
except:
...

While profiling my plugin, I noticed that 95% + of the CPU time used by my
plugin is used in fileinput.input(), waiting/reading from input

Is there any way to lower this or preferred way to poll/read?

Thanks
--
Osama Elnaggar
Steve Grubb
2018-10-05 14:10:22 UTC
Permalink
Hello,
Post by Osama Elnaggar
I'm currently working on a Python audisp plugin. My main routine looks
...
aup = auparse.AuParser(auparse.AUSOURCE_FEED)
aup.add_callback(process_event, None)
aup.feed(_)
...
While profiling my plugin, I noticed that 95% + of the CPU time used by my
plugin is used in fileinput.input(), waiting/reading from input
Is there any way to lower this or preferred way to poll/read?
I don't do much if any python programming. But in C, all examples include a
select in the event processing loop. Python has a select module. There are
examples on the internet about how to use it. One is here:

https://www.programcreek.com/python/example/258/select.select

There are other examples.

-Steve

Loading...