Glimesh / glimesh.tv

Glimesh is a next generation live streaming platform built by the community, for the community.
https://glimesh.tv
Other
470 stars 79 forks source link

M1 Mac Docker Compile Performance #646

Closed Eein closed 1 year ago

Eein commented 3 years ago

M1 mac airs seem to have poor performance when compiling in docker - with a lot of time spent waiting.

Originally discussed here: #632


Compiling 201 files (.ex)
[profile] lib/glimesh/graphql/resolvers/account_resolver.ex compiled in 550ms
[profile] lib/glimesh/subcategories/rawg_source.ex compiled in 516ms
[profile] lib/glimesh/payment_providers/stripe/transfers.ex compiled in 1480ms
[profile] lib/glimesh/accounts/user_access.ex compiled in 531ms
[profile] lib/glimesh_web/plugs/ban_plug.ex compiled in 767ms
[profile] lib/glimesh/oauth/oauth_handler.ex compiled in 844ms
[profile] lib/glimesh_web/plugs/cf_country_plug.ex compiled in 426ms
[profile] lib/glimesh/charts/platform_user_growth.ex compiled in 1138ms
[profile] lib/glimesh/charts/recurring_subscriptions.ex compiled in 1560ms
[profile] lib/glimesh/janus/edge_route.ex compiled in 1160ms
[profile] lib/glimesh/janus.ex compiled in 981ms (plus 6747ms waiting)
[profile] lib/glimesh/blog.ex compiled in 695ms
[profile] lib/glimesh.ex compiled in 619ms
[profile] lib/glimesh/charts/charts.ex compiled in 1575ms
[profile] lib/glimesh_web/plugs/unique_user_plug.ex compiled in 325ms
[profile] lib/glimesh/application.ex compiled in 705ms
[profile] lib/glimesh/workers/stream_pruner.ex compiled in 906ms
[profile] lib/glimesh_web/live/live_helpers.ex compiled in 251ms
[profile] lib/glimesh/streams/subcategory.ex compiled in 1546ms
[profile] lib/glimesh/events.ex compiled in 473ms
[profile] lib/glimesh/oauth/token_utils.ex compiled in 629ms
[profile] lib/glimesh_web/plugs/stripe_webhook_plug.ex compiled in 485ms
[profile] lib/glimesh_web/plugs/taxidpro_webhook_plug.ex compiled in 482ms
[profile] lib/glimesh_web/telemetry.ex compiled in 1322ms
[profile] lib/glimesh_web/controllers/user_auth.ex compiled in 1067ms
[profile] lib/glimesh/formatters.ex compiled in 754ms
[profile] lib/glimesh_web/emails/mailer.ex compiled in 603ms
[profile] lib/glimesh_web.ex compiled in 310ms
[profile] lib/glimesh/repo.ex compiled in 1376ms
[profile] lib/glimesh_web/uploaders/stream_thumbnail.ex compiled in 1982ms (plus 7196ms waiting)
[profile] lib/glimesh_web/uploaders/file_validation.ex compiled in 653ms
[profile] lib/glimesh/graphql/schema/data_types.ex compiled in 1024ms
[profile] lib/glimesh/graphql/schema/channel_types.ex compiled in 1802ms
[profile] lib/glimesh/chat/token.ex compiled in 914ms
[profile] lib/glimesh/chat/parser.ex compiled in 1899ms (plus 22377ms waiting)
[profile] lib/glimesh/oauth/oauth_errors.ex compiled in 314ms
[profile] lib/glimesh/oauth/oauth_token_handler.ex compiled in 335ms
[profile] lib/glimesh_web/router.ex compiled in 5150ms (plus 17448ms waiting)
[profile] lib/glimesh/chat/renderer.ex compiled in 660ms
[profile] lib/glimesh/graphql/schema/chat_types.ex compiled in 811ms
[profile] lib/glimesh/query_cache.ex compiled in 363ms
[profile] lib/glimesh/payment_providers/stripe/webhooks.ex compiled in 1150ms
[profile] lib/glimesh/streams/organizer.ex compiled in 1709ms
[profile] lib/glimesh/release.ex compiled in 891ms
[profile] lib/glimesh_web/uploaders/app_logo.ex compiled in 2243ms
[profile] lib/glimesh_web/uploaders/category_avatar.ex compiled in 2480ms
[profile] lib/glimesh/workers/stream_metrics.ex compiled in 739ms
[profile] lib/glimesh/configurations/configuration.ex compiled in 685ms
[profile] lib/glimesh/tfa.ex compiled in 357ms
[profile] lib/glimesh/configurations.ex compiled in 1902ms (plus 31432ms waiting)
[profile] lib/glimesh/credits.ex compiled in 686ms
[profile] lib/glimesh_web/api_logger.ex compiled in 584ms
[profile] lib/glimesh_web/views/error_helpers.ex compiled in 514ms
[profile] lib/glimesh/graphql/resolvers/chat_resolver.ex compiled in 794ms
[profile] lib/glimesh_web/plugs/redirect_plug.ex compiled in 713ms
[profile] lib/glimesh/presence.ex compiled in 2457ms
[profile] lib/glimesh_web/uploaders/avatar.ex compiled in 2542ms
[profile] lib/glimesh/graphql/schema/account_types.ex compiled in 802ms

15:34:21.696 [debug] AppSignal.Plug attached to Elixir.GlimeshWeb.Endpoint
[profile] lib/glimesh_web/uploaders/channel_poster.ex compiled in 1560ms (plus 16145ms waiting)
[profile] lib/glimesh/homepage.ex compiled in 909ms (plus 19150ms waiting)
[profile] lib/glimesh/channel_lookups.ex compiled in 959ms (plus 29015ms waiting)
[profile] lib/glimesh_web/endpoint.ex compiled in 2307ms
[profile] lib/glimesh_web/uploaders/chat_background.ex compiled in 4468ms (plus 41322ms waiting)
[profile] lib/glimesh/graphql/resolvers/scopes.ex compiled in 792ms
[profile] lib/glimesh/emote.ex compiled in 788ms
[profile] lib/glimesh/charts/live_streams.ex compiled in 1479ms
[profile] lib/glimesh/graphql/schema.ex compiled in 7665ms (plus 7893ms waiting)
[profile] lib/glimesh/blog_migration.ex compiled in 869ms
[profile] lib/glimesh/workers/homepage_generator.ex compiled in 149ms
[profile] lib/glimesh_web/channels/api_socket.ex compiled in 155ms
[profile] lib/glimesh_web/gettext.ex compiled in 5229ms

15:34:29.392 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.Oauth2Provider.AuthorizationView
[profile] lib/glimesh_web/controllers/gct_controller.ex compiled in 523ms (plus 1399ms waiting)
[profile] lib/glimesh_web/views/oauth2_provider/authorization_view.ex compiled in 1166ms (plus 2581ms waiting)
[profile] lib/glimesh_web/live/admin/category_live/form_component.ex compiled in 1165ms (plus 2144ms waiting)
[profile] lib/glimesh/channel_categories.ex compiled in 1032ms (plus 3585ms waiting)
[profile] lib/glimesh_web/live/admin/tag_live/form_component.ex compiled in 623ms (plus 5273ms waiting)

15:34:30.363 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserConfirmationView
[profile] lib/glimesh_web/controllers/oauth2_controllers/authorization_controller.ex compiled in 686ms (plus 5938ms waiting)
[profile] lib/glimesh/accounts/user.ex compiled in 1430ms (plus 1775ms waiting)
[profile] lib/glimesh/oauth/oauth_access_token.ex compiled in 546ms (plus 1995ms waiting)
[profile] lib/glimesh/account_follows/followers.ex compiled in 1600ms (plus 4076ms waiting)
[profile] lib/glimesh/streams/channel.ex compiled in 2735ms (plus 8037ms waiting)
[profile] lib/glimesh/streams/channel_moderation_log.ex compiled in 1699ms (plus 12090ms waiting)
[profile] lib/glimesh/streams/tag.ex compiled in 1451ms (plus 21474ms waiting)
[profile] lib/glimesh/streams/category.ex compiled in 1612ms (plus 42012ms waiting)
[profile] lib/glimesh/streams/stream.ex compiled in 1544ms (plus 30357ms waiting)
[profile] lib/glimesh/streams/stream_metadata.ex compiled in 1382ms (plus 41106ms waiting)
[profile] lib/glimesh/streams/channel_moderator.ex compiled in 1876ms (plus 35402ms waiting)
[profile] lib/glimesh/streams/homepage_channel.ex compiled in 955ms (plus 39055ms waiting)
[profile] lib/glimesh/chat/chat_message.ex compiled in 1773ms (plus 45214ms waiting)
[profile] lib/glimesh/streams/channel_ban.ex compiled in 4917ms (plus 48542ms waiting)
[profile] lib/glimesh/payments/subscription.ex compiled in 3740ms (plus 8429ms waiting)
[profile] lib/glimesh/oauth/oauth_access_grant.ex compiled in 1700ms (plus 12170ms waiting)
[profile] lib/glimesh/accounts/user_social.ex compiled in 1344ms (plus 23055ms waiting)
[profile] lib/glimesh/accounts/user_preference.ex compiled in 1445ms (plus 38109ms waiting)
[profile] lib/glimesh_web/controllers/user_registration_controller.ex compiled in 476ms (plus 1607ms waiting)
[profile] lib/glimesh/community_team/audit_log.ex compiled in 1374ms (plus 39468ms waiting)
[profile] lib/glimesh_web/views/user_confirmation_view.ex compiled in 534ms (plus 7108ms waiting)
[profile] lib/glimesh/accounts/user_token.ex compiled in 3030ms (plus 40843ms waiting)
[profile] lib/glimesh/payments/subscription_invoice.ex compiled in 1729ms (plus 43873ms waiting)
[profile] lib/glimesh/emails/email_log.ex compiled in 1694ms (plus 45227ms waiting)
[profile] lib/glimesh/blog/article.ex compiled in 884ms (plus 46749ms waiting)
[profile] lib/glimesh_web/plugs/api_context_plug.ex compiled in 441ms (plus 6852ms waiting)
[profile] lib/glimesh/accounts/profile.ex compiled in 297ms (plus 2795ms waiting)
[profile] lib/glimesh_web/live/chat_live/index.ex compiled in 705ms (plus 6721ms waiting)
[profile] lib/glimesh/account_follows.ex compiled in 806ms (plus 6251ms waiting)
[profile] lib/glimesh/graphql/resolvers/channel_resolver.ex compiled in 793ms (plus 40550ms waiting)
[profile] lib/glimesh/streams.ex compiled in 1095ms (plus 48671ms waiting)
[profile] lib/glimesh/oauth/token_resolver.ex compiled in 443ms (plus 10602ms waiting)
[profile] lib/glimesh/payment_providers/stripe/stripe.ex compiled in 718ms (plus 21851ms waiting)
[profile] lib/glimesh/streams/policy.ex compiled in 566ms (plus 13673ms waiting)
[profile] lib/glimesh/apps/app.ex compiled in 1706ms (plus 32915ms waiting)
[profile] lib/glimesh/oauth/oauth_application.ex compiled in 2365ms (plus 37512ms waiting)
[profile] lib/glimesh/community_team.ex compiled in 981ms (plus 32400ms waiting)
[profile] lib/glimesh/community_team/policy.ex compiled in 519ms (plus 22571ms waiting)
[profile] lib/glimesh/payments.ex compiled in 1173ms (plus 40340ms waiting)
[profile] lib/glimesh/apps/policy.ex compiled in 531ms (plus 26505ms waiting)
[profile] lib/glimesh/emails.ex compiled in 573ms (plus 33307ms waiting)
[profile] lib/glimesh/socials.ex compiled in 461ms (plus 42066ms waiting)
[profile] lib/glimesh/streams/channel_notifier.ex compiled in 238ms (plus 37071ms waiting)
[profile] lib/glimesh_web/emails/email.ex compiled in 845ms (plus 33776ms waiting)
[profile] lib/glimesh/payment_providers/taxidpro.ex compiled in 395ms (plus 43696ms waiting)
[profile] lib/glimesh/accounts/user_notifier.ex compiled in 488ms (plus 46405ms waiting)
[profile] lib/glimesh/chat.ex compiled in 938ms (plus 23699ms waiting)
[profile] lib/glimesh/apps.ex compiled in 1853ms (plus 52227ms waiting)
[profile] lib/glimesh/stream_moderation.ex compiled in 847ms (plus 51435ms waiting)

15:34:31.052 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserView
[profile] lib/glimesh/socials/twitter.ex compiled in 642ms (plus 53511ms waiting)
[profile] lib/glimesh/accounts.ex compiled in 1510ms (plus 50059ms waiting)
[profile] lib/glimesh_web/views/user_view.ex compiled in 382ms (plus 10682ms waiting)
[profile] lib/glimesh_web/controllers/about_controller.ex compiled in 589ms (plus 12256ms waiting)
[profile] lib/glimesh_web/live/admin/category_live/show.ex compiled in 532ms (plus 11782ms waiting)

15:34:31.189 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.LayoutView
[profile] lib/glimesh_web/live/gct_live/components/channel_chat_log_table.ex compiled in 301ms (plus 13198ms waiting)

15:34:31.293 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserSettingsView
[profile] lib/glimesh_web/live/gct_live/components/channel_button_array.ex compiled in 719ms (plus 13468ms waiting)
[profile] lib/glimesh_web/live/gct_live/components/audit_log_table.ex compiled in 569ms (plus 11397ms waiting)

15:34:31.373 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserRegistrationView
[profile] lib/glimesh_web/live/modal_component.ex compiled in 1504ms (plus 32386ms waiting)

15:34:31.417 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.Oauth2Provider.ApplicationView
[profile] lib/glimesh_web/views/oauth2_provider/application_view.ex compiled in 841ms (plus 34172ms waiting)
[profile] lib/glimesh_web/views/user_registration_view.ex compiled in 930ms (plus 33320ms waiting)
[profile] lib/glimesh_web/live/components/click_to_copy.ex compiled in 1013ms (plus 35288ms waiting)

15:34:31.488 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.AboutView
[profile] lib/glimesh_web/live/user_live/components/report_button.ex compiled in 855ms (plus 34625ms waiting)
[profile] lib/glimesh_web/views/user_settings_view.ex compiled in 1678ms (plus 31374ms waiting)
[profile] lib/glimesh_web/live/chat_live/pop_out.ex compiled in 1271ms (plus 35795ms waiting)
[profile] lib/glimesh_web/views/layout_view.ex compiled in 851ms (plus 13990ms waiting)
[profile] lib/glimesh_web/live/user_live/followers.ex compiled in 1290ms (plus 35947ms waiting)
[profile] lib/glimesh_web/live/user_settings/components/profile_settings_live.ex compiled in 1331ms (plus 36542ms waiting)
[profile] lib/glimesh_web/live/gct_live/components/button_array.ex compiled in 1344ms (plus 37927ms waiting)
[profile] lib/glimesh_web/live/user_settings/components/channel_settings_live.ex compiled in 1452ms (plus 36536ms waiting)
[profile] lib/glimesh_web/live/chat_live/message_form.ex compiled in 1267ms (plus 38819ms waiting)
[profile] lib/glimesh_web/live/user_live/components/viewer_heads.ex compiled in 1412ms (plus 41212ms waiting)
[profile] lib/glimesh_web/live/user_live/components/subscribe_button.ex compiled in 1494ms (plus 41382ms waiting)
warning: unexpected beginning of EEx tag "<%=" on "<%= else %>", please remove "=" accordingly
  lib/glimesh_web/live/user_live/profile.html.leex:26

[profile] lib/glimesh_web/live/admin/tag_live/index.ex compiled in 1215ms (plus 46478ms waiting)
[profile] lib/glimesh_web/live/user_live/profile.ex compiled in 1613ms (plus 44285ms waiting)

15:34:33.249 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.ErrorView
[profile] lib/glimesh_web/live/user_settings/notifications_live.ex compiled in 1343ms (plus 46703ms waiting)
[profile] lib/glimesh_web/live/gct_live/components/user_chat_log_table.ex compiled in 1264ms (plus 47398ms waiting)

15:34:33.339 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.ArticleView

15:34:33.428 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.Oauth2Provider.AuthorizedApplicationView
[profile] lib/glimesh_web/views/error_view.ex compiled in 1374ms (plus 47647ms waiting)

15:34:33.651 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserApplicationsView
[profile] lib/glimesh_web/views/article_view.ex compiled in 1526ms (plus 47971ms waiting)
[profile] lib/glimesh_web/views/oauth2_provider/authorized_application_view.ex compiled in 1284ms (plus 49646ms waiting)
[profile] lib/glimesh_web/live/subscription_component.ex compiled in 1333ms (plus 50869ms waiting)
[profile] lib/glimesh_web/views/user_applications_view.ex compiled in 1318ms (plus 50297ms waiting)
[profile] lib/glimesh_web/live/user_live/index.ex compiled in 1198ms (plus 52411ms waiting)
[profile] lib/glimesh_web/live/streams_live/list.ex compiled in 1583ms (plus 51613ms waiting)
[profile] lib/glimesh_web/live/platform_subscription_live/index.ex compiled in 1125ms (plus 52844ms waiting)

15:34:34.299 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.EmailView
[profile] lib/glimesh_web/views/email_view.ex compiled in 1198ms (plus 55249ms waiting)
[profile] lib/glimesh_web/live/user_live/components/channel_title.ex compiled in 1314ms (plus 55687ms waiting)

15:34:34.505 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserSessionView
[profile] lib/glimesh_web/live/user_live/components/viewer_count.ex compiled in 796ms (plus 30750ms waiting)
[profile] lib/glimesh_web/live/homepage_live.ex compiled in 1042ms (plus 31026ms waiting)

15:34:34.635 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserResetPasswordView
[profile] lib/glimesh_web/views/user_session_view.ex compiled in 807ms (plus 29514ms waiting)
[profile] lib/glimesh_web/live/user_live/components/follow_button.ex compiled in 750ms (plus 28538ms waiting)

15:34:34.722 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.PlatformSubscriptionsView
[profile] lib/glimesh_web/views/platform_subscriptions_view.ex compiled in 621ms (plus 27105ms waiting)
[profile] lib/glimesh_web/live/admin/category_live/index.ex compiled in 843ms (plus 27659ms waiting)
[profile] lib/glimesh_web/views/user_reset_password_view.ex compiled in 880ms (plus 27880ms waiting)

15:34:34.801 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.ChannelModeratorView
[profile] lib/glimesh_web/live/components/user_card.ex compiled in 663ms (plus 24730ms waiting)
[profile] lib/glimesh_web/live/streams_live/following.ex compiled in 784ms (plus 25448ms waiting)
[profile] lib/glimesh_web/live/about/open_data_live.ex compiled in 831ms (plus 23969ms waiting)

15:34:34.886 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserPaymentsView
[profile] lib/glimesh_web/live/streams_live/index.ex compiled in 663ms (plus 23910ms waiting)
[profile] lib/glimesh_web/live/components/tagify_component.ex compiled in 737ms (plus 23564ms waiting)

15:34:34.941 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.UserSecurityView
[profile] lib/glimesh_web/views/channel_moderator_view.ex compiled in 982ms (plus 25055ms waiting)
[profile] lib/glimesh_web/views/user_security_view.ex compiled in 843ms (plus 23525ms waiting)
[profile] lib/glimesh_web/live/user_live/components/social_buttons.ex compiled in 577ms (plus 22772ms waiting)
[profile] lib/glimesh_web/views/about_view.ex compiled in 4707ms (plus 35447ms waiting)
[profile] lib/glimesh_web/controllers/blog_migration_controller.ex compiled in 352ms (plus 22141ms waiting)
[profile] lib/glimesh_web/views/user_payments_view.ex compiled in 1027ms (plus 23605ms waiting)

15:34:35.182 [debug] AppSignal.Phoenix.View attached to Elixir.GlimeshWeb.GctView
[profile] lib/glimesh_web/controllers/article_controller.ex compiled in 552ms (plus 24850ms waiting)
[profile] lib/glimesh_web/controllers/user_session_controller.ex compiled in 436ms (plus 29931ms waiting)
[profile] lib/glimesh_web/controllers/oauth2_controllers/token_controller.ex compiled in 473ms (plus 32166ms waiting)
[profile] lib/glimesh_web/live/user_live/stream.ex compiled in 777ms (plus 23355ms waiting)
[profile] lib/glimesh_web/controllers/user_social_controller.ex compiled in 736ms (plus 57623ms waiting)
[profile] lib/glimesh_web/controllers/gct_fallback_controller.ex compiled in 467ms (plus 51637ms waiting)
[profile] lib/glimesh_web/controllers/oauth2_controllers/authorized_application_controller.ex compiled in 748ms (plus 50866ms waiting)
[profile] lib/glimesh_web/controllers/user_payments_controller.ex compiled in 847ms (plus 52650ms waiting)
[profile] lib/glimesh_web/controllers/user_applications_controller.ex compiled in 799ms (plus 49019ms waiting)
[profile] lib/glimesh_web/controllers/user_reset_password_controller.ex compiled in 636ms (plus 48736ms waiting)
[profile] lib/glimesh_web/controllers/user_settings_controller.ex compiled in 696ms (plus 45919ms waiting)
[profile] lib/glimesh_web/controllers/fallback_controller.ex compiled in 789ms (plus 40840ms waiting)
[profile] lib/glimesh_web/controllers/user_security_controller.ex compiled in 854ms (plus 44789ms waiting)
[profile] lib/glimesh_web/controllers/channel_moderator_controller.ex compiled in 811ms (plus 44269ms waiting)
[profile] lib/glimesh_web/controllers/webhook_controller.ex compiled in 821ms (plus 39691ms waiting)
[profile] lib/glimesh_web/controllers/quick_preference_controller.ex compiled in 837ms (plus 38080ms waiting)
[profile] lib/glimesh_web/controllers/user_confirmation_controller.ex compiled in 740ms (plus 37050ms waiting)
[profile] lib/glimesh_web/plugs/locale_plug.ex compiled in 552ms (plus 41671ms waiting)
[profile] lib/glimesh/chat/policy.ex compiled in 507ms (plus 41209ms waiting)
[profile] lib/glimesh/chat/effects.ex compiled in 357ms (plus 42924ms waiting)
[profile] lib/glimesh_web/views/gct_view.ex compiled in 1239ms (plus 22778ms waiting)
[profile] Finished compilation cycle of 221 modules in 58862ms
[profile] Finished group pass check of 221 modules in 7951ms
Generated glimesh app```
clone1018 commented 3 years ago

Is this inside or outside of docker?

Eein commented 3 years ago

Docker only - i'll update the ticket to be more clear!

Eein commented 3 years ago

https://github.com/absinthe-graphql/absinthe/issues/289#issuecomment-286581840 https://github.com/sasa1977/con_cache#testing-in-your-application

ExUnit.start(assert_receive_timeout: 300)

Eein commented 3 years ago

On my macbook pro 2015, I did the following:

Might be worth a try just to increase the ram given on the M1 macs to at least 3gb (or more given rossetta things)

As an alternative solution, it might just be preferable to also include a 'dependencies only' docker-compose.yml file that allows users to spin up postgres and the stripe mock and expose the ports so it can be used by native elixir.

clone1018 commented 1 year ago

This should be resolved now, compiles great for me.