# Careful what data you send or how to tank your performance with Task.async

**URL:** <https://forum.devtalk.com/t/careful-what-data-you-send-or-how-to-tank-your-performance-with-task-async/136587>\
**Category:** Blogs/Articles/Talks/Podcasts\
**Tags:** elixir, blog-post, erlang\
**Created:** [19 December 2023 14:21 UTC](https://forum.devtalk.com/t/careful-what-data-you-send-or-how-to-tank-your-performance-with-task-async/136587 "2023-12-19T14:21:17Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![PragTob](https://forum.devtalk.com/user_avatar/forum.devtalk.com/pragtob/32/5613_2.png) [@PragTob](https://forum.devtalk.com/u/PragTob)\
**Post date:** [19 December 2023 14:21 UTC](https://forum.devtalk.com/t/careful-what-data-you-send-or-how-to-tank-your-performance-with-task-async/136587/1 "2023-12-19T14:21:17Z")

</div>

I ran into an interesting problem recently where simple concurrency on the BEAM via `Task.async` made my application a lot slower and a lot more memory hungry. This blog post illustrates the issue with a short example, where processing 3 non-trivial actions on a list in parallel is slower than doing it sequentially, and then explains why this happens and what can or can’t be done about it.

> **[Careful what data you send or how to tank your performance with Task.async](https://pragtob.wordpress.com/2023/12/18/careful-what-data-you-send-or-how-to-tank-your-performance-with-task-async/)**
>
> In Elixir and on the BEAM (Erlang Virtual Machine) in general we love our processes – lightweight, easily run millions of them, easy lock-less parallelism – you’ve probably heard …
