If N < 20, means the tree is not high, the DFS might be fast.
If N <200 or 1000, and the tree is deep, the DFS might take an extremely long time to go into one leaf node. At the time, it stores all the info as recursive reading all the data. In such a case when the N is large is really memory consuming. Which is BFS take "every heigh" data at the time, and when it is done, go next.
If the tree is really wide that "one heigh" can not fit into memory, the BFS might not work. Or you can limit the values read at the time.
if the tree is really depth, and you want to use the DFS, you might need to limit the depth for search every time.
If the value you are looking for appears at the tree frequently, you might not want to use BFS.