RabbitMQ - MQTT adapter hipe compilation

468 views Asked by At

I have enable hipe compilation in config as follows:

[
{rabbit, 
    [
        ...
        {hipe_compile, true}
    ]
},
{rabbitmq_mqtt,...

But post restart of rabbitmq, I dont find the rabbitmq_mqtt module under the {hipe_modules} section:

> rabbitmqctl report

 {hipe_compile,true},
 {hipe_modules,[rabbit_reader,rabbit_channel,gen_server2,rabbit_exchange,
                rabbit_command_assembler,rabbit_framing_amqp_0_9_1,
                rabbit_basic,rabbit_event,lists,queue,priority_queue,
                rabbit_router,rabbit_trace,rabbit_misc,rabbit_binary_parser,
                rabbit_exchange_type_direct,rabbit_guid,rabbit_net,
                rabbit_amqqueue_process,rabbit_variable_queue,
                rabbit_binary_generator,rabbit_writer,delegate,gb_sets,lqueue,
                sets,orddict,rabbit_amqqueue,rabbit_limiter,gb_trees,
                rabbit_queue_index,rabbit_exchange_decorator,gen,dict,ordsets,
                file_handle_cache,rabbit_msg_store,array,
                rabbit_msg_store_ets_index,rabbit_msg_file,
                rabbit_exchange_type_fanout,rabbit_exchange_type_topic,mnesia,
                mnesia_lib,rpc,mnesia_tm,qlc,sofs,proplists,credit_flow,pmon,
                ssl_connection,tls_connection,ssl_record,tls_record,gen_fsm,
                ssl]},

Does this mean the mqtt adapter is not hipe compiled?

Thanks

2

There are 2 answers

0
old_sound On

You can extend the config item hipe_modules with the MQTT modules that you want hipe compiled.

Here's the list, http://hg.rabbitmq.com/rabbitmq-server/file/669a08de6e9e/ebin/rabbit_app.in#l65 so you need to extend it with the extra modules.

0
mpm On

You could verify this by per module bases using actual Erlang

$ rabbitmqctl eval 'rabbit_mqtt:module_info().'

This command should output quite long list of options, part of those being

{compile, 
   [{options, 
        [...

There you should see if module was compiled with hipe or not.