Detect 2D GameObjects when "Colliding" with each other without RB and collider.

Hi guys,
I’m making a game Where at Start 25,000 Asteroid are spawned using an ObjectPooler and they start moving at random direction to infinite. If 2 asteroids collide both should be destroyed. If I use RigidBody2D for each object and use OnTriggerEnter2D or OnCollisionEnter2D methods, my game’s performance drops dramatically, I don’t need physics at no point. I want the most efficient and fastest way of detecting 2 objects “colliding”.

Here is my ObjectPooler Script:

  public static ObjectPooler instance;

  public class Pool 
	  public int size;
	public GameObject prefab;
      public List<Pool> pools;
      public Dictionary<string, Queue<GameObject>> poolDictionary;
      void Start () {

	     instance = this;
	     poolDictionary = new Dictionary<string, Queue<GameObject>>();
	     foreach(Pool pool in pools)
		     Queue<GameObject> objectPool = new Queue<GameObject>();
		     for (int i = 0; i < pool.size; i++)
			     GameObject obj = Instantiate(pool.prefab);
                                 // I dont want to use Rigidbody2d or collider2d 
			     obj.AddComponent<CircleCollider2D>().isTrigger = true;
			     obj.AddComponent<Rigidbody2D>().bodyType = RigidbodyType2D.Kinematic;
		     poolDictionary.Add(pool.tag, objectPool);

public GameObject SpawnFromPool(string tag, Vector3 position, Quaternion rotation)
	if(!poolDictionary.ContainsKey(tag)) return null;
	GameObject objToSpawn = poolDictionary[tag].Dequeue();
	objToSpawn.transform.position = position;
	objToSpawn.transform.rotation = rotation;
	return objToSpawn;

My GameController Script:

 private void SpawnAsteroids() {
	for (Generating X Position)                                            . . . . 
	{    //Spawning asteroids like in a square form in scene like this ->  . . . .
		for (Generating Y Position)                                        . . . .
			GameObject newObj = objectPooler.SpawnFromPool("asteroid", Position, Rotation);
			asteroidsTransform.Add(newObj.transform);  // I use this for moving the objects
	void Update () {
         //For Moving the Asteroids after they are spawned
		for (int i = 0; i < asteroidsTransform.Count; i++)
			asteroidsTransform<em>.transform.position += asteroidMovement _* Time.deltaTime;_</em>

* }*

Just an idea, but here is a bounding box script that compares the bounds of the spriteRenderers. Then you can tell if they collide without colliders. Just place it in a scene, add two sprites, then colllide them.

using UnityEngine;

public class BoundingTest : MonoBehaviour
    [SerializeField] SpriteRenderer firstRenderer;
    [SerializeField] SpriteRenderer secondRenderer;

    void Update ()
        Bounds firstBounds = firstRenderer.bounds;
        Bounds SecondBounds = secondRenderer.bounds;

        if (firstBounds.Intersects(SecondBounds))