In my opinion a cane is more effective in SD than a knife, first off, the cane gives you a longer reach to keep your attacker further away.
Second, no practical knife will give you the ability to immediately disable an attacker, with the length restrictions most states place on knives this is magnified, a cane on the other hand gives you the leverage to break bones, thereby interfering with the attackers physical support structure, and his ability to attack or pursue.
So if I were going to invest time, money and commitment into SD training I would go with the cane and leave the knife for eating and opening packages.